#ifndef MODBUSTCP_CLASS_H
#define MODBUSTCP_CLASS_H

#include <QModbusDataUnit>
#include <QModbusTcpClient>
#include <QMutex>
#include <QObject>
#include <QThread>
#include <QTimer>
#include <QVariant>
#include <QVector>
#include <QDateTime>
#include <QDebug>

#include "Warning_Mid.h"



class ModbusTCP_Class : public QObject
{
    Q_OBJECT

    // 当前 PLC 连接状态
    Q_PROPERTY(int ConnectState READ ConnectState WRITE setConnectState NOTIFY ConnectStateChanged FINAL)

    // 当前页码
    Q_PROPERTY(int currentPageNumber READ currentPageNumber WRITE setCurrentPageNumber NOTIFY currentPageNumberChanged FINAL)

    /**
     *  15轴属性 - 当前位置
     */
    // 前上刀1 当前位置
    Q_PROPERTY(QString FU_knife_1_CurrLoc READ FU_knife_1_CurrLoc WRITE setFU_knife_1_CurrLoc NOTIFY FU_knife_1_CurrLocChanged FINAL)
    // 前上刀2 当前位置
    Q_PROPERTY(QString FU_knife_2_CurrLoc READ FU_knife_2_CurrLoc WRITE setFU_knife_2_CurrLoc NOTIFY FU_knife_2_CurrLocChanged FINAL)
    // 前上刀1辅助工进 当前位置
    Q_PROPERTY(QString FU_knife_1_A_E_CurrLoc READ FU_knife_1_A_E_CurrLoc WRITE setFU_knife_1_A_E_CurrLoc NOTIFY FU_knife_1_A_E_CurrLocChanged FINAL)
    // 前上刀2辅助工进 当前位置
    Q_PROPERTY(QString FU_knife_2_A_E_CurrLoc READ FU_knife_2_A_E_CurrLoc WRITE setFU_knife_2_A_E_CurrLoc NOTIFY FU_knife_2_A_E_CurrLocChanged FINAL)
    // 后上刀1 当前位置
    Q_PROPERTY(QString BU_knife_1_CurrLoc READ BU_knife_1_CurrLoc WRITE setBU_knife_1_CurrLoc NOTIFY BU_knife_1_CurrLocChanged FINAL)
    // 后上刀2 当前位置
    Q_PROPERTY(QString BU_knife_2_CurrLoc READ BU_knife_2_CurrLoc WRITE setBU_knife_2_CurrLoc NOTIFY BU_knife_2_CurrLocChanged FINAL)
    // 后上刀1辅助工进 当前位置
    Q_PROPERTY(QString BU_knife_1_A_E_CurrLoc READ BU_knife_1_A_E_CurrLoc WRITE setBU_knife_1_A_E_CurrLoc NOTIFY BU_knife_1_A_E_CurrLocChanged FINAL)
    // 后上刀2辅助工进 当前位置
    Q_PROPERTY(QString BU_knife_2_A_E_CurrLoc READ BU_knife_2_A_E_CurrLoc WRITE setBU_knife_2_A_E_CurrLoc NOTIFY BU_knife_2_A_E_CurrLocChanged FINAL)
    // 前下刀1 当前位置
    Q_PROPERTY(QString FD_knife_1_CurrLoc READ FD_knife_1_CurrLoc WRITE setFD_knife_1_CurrLoc NOTIFY FD_knife_1_CurrLocChanged FINAL)
    // 前下刀2 当前位置
    Q_PROPERTY(QString FD_knife_2_CurrLoc READ FD_knife_2_CurrLoc WRITE setFD_knife_2_CurrLoc NOTIFY FD_knife_2_CurrLocChanged FINAL)
    // 后下刀1 当前位置
    Q_PROPERTY(QString BD_knife_1_CurrLoc READ BD_knife_1_CurrLoc WRITE setBD_knife_1_CurrLoc NOTIFY BD_knife_1_CurrLocChanged FINAL)
    // 后下刀2 当前位置
    Q_PROPERTY(QString BD_knife_2_CurrLoc READ BD_knife_2_CurrLoc WRITE setBD_knife_2_CurrLoc NOTIFY BD_knife_2_CurrLocChanged FINAL)
    // 工进1 当前位置
    Q_PROPERTY(QString Entry_1_CurrLoc READ Entry_1_CurrLoc WRITE setEntry_1_CurrLoc NOTIFY Entry_1_CurrLocChanged FINAL)
    // 工进2 当前位置
    Q_PROPERTY(QString Entry_2_CurrLoc READ Entry_2_CurrLoc WRITE setEntry_2_CurrLoc NOTIFY Entry_2_CurrLocChanged FINAL)
    // 压辊 当前位置
    Q_PROPERTY(QString Idler_CurrLoc READ Idler_CurrLoc WRITE setIdler_CurrLoc NOTIFY Idler_CurrLocChanged FINAL)

    /**
     *  15轴属性 - 目标位置
     */
    // 前上刀1 目标位置
    Q_PROPERTY(QString FU_knife_1_AimLoc READ FU_knife_1_AimLoc WRITE setFU_knife_1_AimLoc NOTIFY FU_knife_1_AimLocChanged FINAL)
    // 前上刀2 目标位置
    Q_PROPERTY(QString FU_knife_2_AimLoc READ FU_knife_2_AimLoc WRITE setFU_knife_2_AimLoc NOTIFY FU_knife_2_AimLocChanged FINAL)
    // 前上刀1辅助工进 目标位置
    Q_PROPERTY(QString FU_knife_1_A_E_AimLoc READ FU_knife_1_A_E_AimLoc WRITE setFU_knife_1_A_E_AimLoc NOTIFY FU_knife_1_A_E_AimLocChanged FINAL)
    // 前上刀2辅助工进 目标位置
    Q_PROPERTY(QString FU_knife_2_A_E_AimLoc READ FU_knife_2_A_E_AimLoc WRITE setFU_knife_2_A_E_AimLoc NOTIFY FU_knife_2_A_E_AimLocChanged FINAL)
    // 后上刀1 目标位置
    Q_PROPERTY(QString BU_knife_1_AimLoc READ BU_knife_1_AimLoc WRITE setBU_knife_1_AimLoc NOTIFY BU_knife_1_AimLocChanged FINAL)
    // 后上刀2 目标位置
    Q_PROPERTY(QString BU_knife_2_AimLoc READ BU_knife_2_AimLoc WRITE setBU_knife_2_AimLoc NOTIFY BU_knife_2_AimLocChanged FINAL)
    // 后上刀1辅助工进 目标位置
    Q_PROPERTY(QString BU_knife_1_A_E_AimLoc READ BU_knife_1_A_E_AimLoc WRITE setBU_knife_1_A_E_AimLoc NOTIFY BU_knife_1_A_E_AimLocChanged FINAL)
    // 后上刀2辅助工进 目标位置
    Q_PROPERTY(QString BU_knife_2_A_E_AimLoc READ BU_knife_2_A_E_AimLoc WRITE setBU_knife_2_A_E_AimLoc NOTIFY BU_knife_2_A_E_AimLocChanged FINAL)
    // 前下刀1 目标位置
    Q_PROPERTY(QString FD_knife_1_AimLoc READ FD_knife_1_AimLoc WRITE setFD_knife_1_AimLoc NOTIFY FD_knife_1_AimLocChanged FINAL)
    // 前下刀2 目标位置
    Q_PROPERTY(QString FD_knife_2_AimLoc READ FD_knife_2_AimLoc WRITE setFD_knife_2_AimLoc NOTIFY FD_knife_2_AimLocChanged FINAL)
    // 后下刀1 目标位置
    Q_PROPERTY(QString BD_knife_1_AimLoc READ BD_knife_1_AimLoc WRITE setBD_knife_1_AimLoc NOTIFY BD_knife_1_AimLocChanged FINAL)
    // 后下刀2 目标位置
    Q_PROPERTY(QString BD_knife_2_AimLoc READ BD_knife_2_AimLoc WRITE setBD_knife_2_AimLoc NOTIFY BD_knife_2_AimLocChanged FINAL)
    // 工进1 目标位置
    Q_PROPERTY(QString Entry_1_AimLoc READ Entry_1_AimLoc WRITE setEntry_1_AimLoc NOTIFY Entry_1_AimLocChanged FINAL)
    // 工进2 目标位置
    Q_PROPERTY(QString Entry_2_AimLoc READ Entry_2_AimLoc WRITE setEntry_2_AimLoc NOTIFY Entry_2_AimLocChanged FINAL)
    // 压辊 目标位置
    Q_PROPERTY(QString Idler_AimLoc READ Idler_AimLoc WRITE setIdler_AimLoc NOTIFY Idler_AimLocChanged FINAL)

    /**
    * 15轴寸动距离
    */
    // 前上刀1 寸动距离
    Q_PROPERTY(QString FU_knife_1_PM READ FU_knife_1_PM WRITE setFU_knife_1_PM NOTIFY FU_knife_1_PMChanged FINAL)
    // 前上刀2 寸动距离
    Q_PROPERTY(QString FU_knife_2_PM READ FU_knife_2_PM WRITE setFU_knife_2_PM NOTIFY FU_knife_2_PMChanged FINAL)
    // 前上刀1辅助工进 寸动距离
    Q_PROPERTY(QString FU_knife_1_A_E_PM READ FU_knife_1_A_E_PM WRITE setFU_knife_1_A_E_PM NOTIFY FU_knife_1_A_E_PMChanged FINAL)
    // 前上刀2辅助工进 寸动距离
    Q_PROPERTY(QString FU_knife_2_A_E_PM READ FU_knife_2_A_E_PM WRITE setFU_knife_2_A_E_PM NOTIFY FU_knife_2_A_E_PMChanged FINAL)
    // 后上刀1 寸动距离
    Q_PROPERTY(QString BU_knife_1_PM READ BU_knife_1_PM WRITE setBU_knife_1_PM NOTIFY BU_knife_1_PMChanged FINAL)
    // 后上刀2 寸动距离
    Q_PROPERTY(QString BU_knife_2_PM READ BU_knife_2_PM WRITE setBU_knife_2_PM NOTIFY BU_knife_2_PMChanged FINAL)
    // 后上刀1辅助工进 寸动距离
    Q_PROPERTY(QString BU_knife_1_A_E_PM READ BU_knife_1_A_E_PM WRITE setBU_knife_1_A_E_PM NOTIFY BU_knife_1_A_E_PMChanged FINAL)
    // 后上刀2辅助工进 寸动距离
    Q_PROPERTY(QString BU_knife_2_A_E_PM READ BU_knife_2_A_E_PM WRITE setBU_knife_2_A_E_PM NOTIFY BU_knife_2_A_E_PMChanged FINAL)
    // 前下刀1 寸动距离
    Q_PROPERTY(QString FD_knife_1_PM READ FD_knife_1_PM WRITE setFD_knife_1_PM NOTIFY FD_knife_1_PMChanged FINAL)
    // 前下刀2 寸动距离
    Q_PROPERTY(QString FD_knife_2_PM READ FD_knife_2_PM WRITE setFD_knife_2_PM NOTIFY FD_knife_2_PMChanged FINAL)
    // 后下刀1 寸动距离
    Q_PROPERTY(QString BD_knife_1_PM READ BD_knife_1_PM WRITE setBD_knife_1_PM NOTIFY BD_knife_1_PMChanged FINAL)
    // 后下刀2 寸动距离
    Q_PROPERTY(QString BD_knife_2_PM READ BD_knife_2_PM WRITE setBD_knife_2_PM NOTIFY BD_knife_2_PMChanged FINAL)
    // 工进1 寸动距离
    Q_PROPERTY(QString Entry_1_PM READ Entry_1_PM WRITE setEntry_1_PM NOTIFY Entry_1_PMChanged FINAL)
    // 工进2 寸动距离
    Q_PROPERTY(QString Entry_2_PM READ Entry_2_PM WRITE setEntry_2_PM NOTIFY Entry_2_PMChanged FINAL)
    // 压辊 寸动距离
    Q_PROPERTY(QString Idler_PM READ Idler_PM WRITE setIdler_PM NOTIFY Idler_PMChanged FINAL)

    /**
     *  15轴 实时扭矩
     */
    // 前上刀1 实时扭矩
    Q_PROPERTY(QString FU_knife_1_TQ READ FU_knife_1_TQ WRITE setFU_knife_1_TQ NOTIFY FU_knife_1_TQChanged FINAL)
    // 前上刀2 实时扭矩
    Q_PROPERTY(QString FU_knife_2_TQ READ FU_knife_2_TQ WRITE setFU_knife_2_TQ NOTIFY FU_knife_2_TQChanged FINAL)
    // 前上刀1辅助工进 实时扭矩
    Q_PROPERTY(QString FU_knife_1_A_E_TQ READ FU_knife_1_A_E_TQ WRITE setFU_knife_1_A_E_TQ NOTIFY FU_knife_1_A_E_TQChanged FINAL)
    // 前上刀2辅助工进 实时扭矩
    Q_PROPERTY(QString FU_knife_2_A_E_TQ READ FU_knife_2_A_E_TQ WRITE setFU_knife_2_A_E_TQ NOTIFY FU_knife_2_A_E_TQChanged FINAL)
    // 后上刀1 实时扭矩
    Q_PROPERTY(QString BU_knife_1_TQ READ BU_knife_1_TQ WRITE setBU_knife_1_TQ NOTIFY BU_knife_1_TQChanged FINAL)
    // 后上刀2 实时扭矩
    Q_PROPERTY(QString BU_knife_2_TQ READ BU_knife_2_TQ WRITE setBU_knife_2_TQ NOTIFY BU_knife_2_TQChanged FINAL)
    // 后上刀1辅助工进 实时扭矩
    Q_PROPERTY(QString BU_knife_1_A_E_TQ READ BU_knife_1_A_E_TQ WRITE setBU_knife_1_A_E_TQ NOTIFY BU_knife_1_A_E_TQChanged FINAL)
    // 后上刀2辅助工进 实时扭矩
    Q_PROPERTY(QString BU_knife_2_A_E_TQ READ BU_knife_2_A_E_TQ WRITE setBU_knife_2_A_E_TQ NOTIFY BU_knife_2_A_E_TQChanged FINAL)
    // 前下刀1 实时扭矩
    Q_PROPERTY(QString FD_knife_1_TQ READ FD_knife_1_TQ WRITE setFD_knife_1_TQ NOTIFY FD_knife_1_TQChanged FINAL)
    // 前下刀2 实时扭矩
    Q_PROPERTY(QString FD_knife_2_TQ READ FD_knife_2_TQ WRITE setFD_knife_2_TQ NOTIFY FD_knife_2_TQChanged FINAL)
    // 后下刀1 实时扭矩
    Q_PROPERTY(QString BD_knife_1_TQ READ BD_knife_1_TQ WRITE setBD_knife_1_TQ NOTIFY BD_knife_1_TQChanged FINAL)
    // 后下刀2 实时扭矩
    Q_PROPERTY(QString BD_knife_2_TQ READ BD_knife_2_TQ WRITE setBD_knife_2_TQ NOTIFY BD_knife_2_TQChanged FINAL)
    // 工进1 实时扭矩
    Q_PROPERTY(QString Entry_1_TQ READ Entry_1_TQ WRITE setEntry_1_TQ NOTIFY Entry_1_TQChanged FINAL)
    // 工进2 实时扭矩
    Q_PROPERTY(QString Entry_2_TQ READ Entry_2_TQ WRITE setEntry_2_TQ NOTIFY Entry_2_TQChanged FINAL)
    // 压辊 实时扭矩
    Q_PROPERTY(QString Idler_TQ READ Idler_TQ WRITE setIdler_TQ NOTIFY Idler_TQChanged FINAL)

    /**
     * 前上刀1辅工 - 压力轴参数
     */
    // 前上刀1辅工 每转脉冲数 （Pulses Per Revolution） [VD4200]
    Q_PROPERTY(QString FU_knife_1_A_E_PPR READ FU_knife_1_A_E_PPR WRITE setFU_knife_1_A_E_PPR NOTIFY FU_knife_1_A_E_PPRChanged FINAL)
    // 前上刀1辅工 减速比 （Reduction Ratio） [VD4204]
    Q_PROPERTY(QString FU_knife_1_A_E_RR READ FU_knife_1_A_E_RR WRITE setFU_knife_1_A_E_RR NOTIFY FU_knife_1_A_E_RRChanged FINAL)
    // 前上刀1辅工 每转位移量 （Displacement Per Revolution） [VD4208]
    Q_PROPERTY(QString FU_knife_1_A_E_DPR READ FU_knife_1_A_E_DPR WRITE setFU_knife_1_A_E_DPR NOTIFY FU_knife_1_A_E_DPRChanged FINAL)
    // 前上刀1辅工 零点位置 （Zero Position） [VD4212]
    Q_PROPERTY(QString FU_knife_1_A_E_ZP READ FU_knife_1_A_E_ZP WRITE setFU_knife_1_A_E_ZP NOTIFY FU_knife_1_A_E_ZPChanged FINAL)
    // 前上刀1辅工 零点补偿 （Zero Offset Compensation） [VD4216]
    Q_PROPERTY(QString FU_knife_1_A_E_ZOC READ FU_knife_1_A_E_ZOC WRITE setFU_knife_1_A_E_ZOC NOTIFY FU_knife_1_A_E_ZOCChanged FINAL)
    // 前上刀1辅工 加速时间 （Acceleration Time） [VD4220]
    Q_PROPERTY(QString FU_knife_1_A_E_T_Acc READ FU_knife_1_A_E_T_Acc WRITE setFU_knife_1_A_E_T_Acc NOTIFY FU_knife_1_A_E_T_AccChanged FINAL)
    // 前上刀1辅工 减速时间 （Deceleration Time） [VD4224]
    Q_PROPERTY(QString FU_knife_1_A_E_T_Dec READ FU_knife_1_A_E_T_Dec WRITE setFU_knife_1_A_E_T_Dec NOTIFY FU_knife_1_A_E_T_DecChanged FINAL)
    // 前上刀1辅工 正极限 （Positive Limit） [VD4228]
    Q_PROPERTY(QString FU_knife_1_A_E_PL READ FU_knife_1_A_E_PL WRITE setFU_knife_1_A_E_PL NOTIFY FU_knife_1_A_E_PLChanged FINAL)
    // 前上刀1辅工 负极限 （Negative Limit） [VD4232]
    Q_PROPERTY(QString FU_knife_1_A_E_NL READ FU_knife_1_A_E_NL WRITE setFU_knife_1_A_E_NL NOTIFY FU_knife_1_A_E_NLChanged FINAL)
    // 前上刀1辅工 手动低速 （Manual Low Speed） [VD4252]
    Q_PROPERTY(QString FU_knife_1_A_E_MLS READ FU_knife_1_A_E_MLS WRITE setFU_knife_1_A_E_MLS NOTIFY FU_knife_1_A_E_MLSChanged FINAL)
    // 前上刀1辅工 手动高速 （Manual High Speed） [VD4256]
    Q_PROPERTY(QString FU_knife_1_A_E_MHS READ FU_knife_1_A_E_MHS WRITE setFU_knife_1_A_E_MHS NOTIFY FU_knife_1_A_E_MHSChanged FINAL)
    // 前上刀1辅工 自动速度 （Automatic Speed） [VD4260]
    Q_PROPERTY(QString FU_knife_1_A_E_AS READ FU_knife_1_A_E_AS WRITE setFU_knife_1_A_E_AS NOTIFY FU_knife_1_A_E_ASChanged FINAL)
    // 前上刀1辅工 实时速度 （Real-Time Speed） [VD4264]
    Q_PROPERTY(QString FU_knife_1_A_E_RTS READ FU_knife_1_A_E_RTS WRITE setFU_knife_1_A_E_RTS NOTIFY FU_knife_1_A_E_RTSChanged FINAL)

    /**
     * 前上刀2辅工 - 压力轴参数
     */
    // 前上刀2辅工 每转脉冲数 （Pulses Per Revolution） [VD4300]
    Q_PROPERTY(QString FU_knife_2_A_E_PPR READ FU_knife_2_A_E_PPR WRITE setFU_knife_2_A_E_PPR NOTIFY FU_knife_2_A_E_PPRChanged FINAL)
    // 前上刀2辅工 减速比 （Reduction Ratio） [VD4304]
    Q_PROPERTY(QString FU_knife_2_A_E_RR READ FU_knife_2_A_E_RR WRITE setFU_knife_2_A_E_RR NOTIFY FU_knife_2_A_E_RRChanged FINAL)
    // 前上刀2辅工 每转位移量 （Displacement Per Revolution） [VD4308]
    Q_PROPERTY(QString FU_knife_2_A_E_DPR READ FU_knife_2_A_E_DPR WRITE setFU_knife_2_A_E_DPR NOTIFY FU_knife_2_A_E_DPRChanged FINAL)
    // 前上刀2辅工 零点位置 （Zero Position） [VD4312]
    Q_PROPERTY(QString FU_knife_2_A_E_ZP READ FU_knife_2_A_E_ZP WRITE setFU_knife_2_A_E_ZP NOTIFY FU_knife_2_A_E_ZPChanged FINAL)
    // 前上刀2辅工 零点补偿 （Zero Offset Compensation） [VD4316]
    Q_PROPERTY(QString FU_knife_2_A_E_ZOC READ FU_knife_2_A_E_ZOC WRITE setFU_knife_2_A_E_ZOC NOTIFY FU_knife_2_A_E_ZOCChanged FINAL)
    // 前上刀2辅工 加速时间 （Acceleration Time） [VD4320]
    Q_PROPERTY(QString FU_knife_2_A_E_T_Acc READ FU_knife_2_A_E_T_Acc WRITE setFU_knife_2_A_E_T_Acc NOTIFY FU_knife_2_A_E_T_AccChanged FINAL)
    // 前上刀2辅工 减速时间 （Deceleration Time） [VD4324]
    Q_PROPERTY(QString FU_knife_2_A_E_T_Dec READ FU_knife_2_A_E_T_Dec WRITE setFU_knife_2_A_E_T_Dec NOTIFY FU_knife_2_A_E_T_DecChanged FINAL)
    // 前上刀2辅工 正极限 （Positive Limit） [VD4328]
    Q_PROPERTY(QString FU_knife_2_A_E_PL READ FU_knife_2_A_E_PL WRITE setFU_knife_2_A_E_PL NOTIFY FU_knife_2_A_E_PLChanged FINAL)
    // 前上刀2辅工 负极限 （Negative Limit） [VD4332]
    Q_PROPERTY(QString FU_knife_2_A_E_NL READ FU_knife_2_A_E_NL WRITE setFU_knife_2_A_E_NL NOTIFY FU_knife_2_A_E_NLChanged FINAL)
    // 前上刀2辅工 手动低速 （Manual Low Speed） [VD4352]
    Q_PROPERTY(QString FU_knife_2_A_E_MLS READ FU_knife_2_A_E_MLS WRITE setFU_knife_2_A_E_MLS NOTIFY FU_knife_2_A_E_MLSChanged FINAL)
    // 前上刀2辅工 手动高速 （Manual High Speed） [VD4356]
    Q_PROPERTY(QString FU_knife_2_A_E_MHS READ FU_knife_2_A_E_MHS WRITE setFU_knife_2_A_E_MHS NOTIFY FU_knife_2_A_E_MHSChanged FINAL)
    // 前上刀2辅工 自动速度 （Automatic Speed） [VD4360]
    Q_PROPERTY(QString FU_knife_2_A_E_AS READ FU_knife_2_A_E_AS WRITE setFU_knife_2_A_E_AS NOTIFY FU_knife_2_A_E_ASChanged FINAL)
    // 前上刀2辅工 实时速度 （Real-Time Speed） [VD4364]
    Q_PROPERTY(QString FU_knife_2_A_E_RTS READ FU_knife_2_A_E_RTS WRITE setFU_knife_2_A_E_RTS NOTIFY FU_knife_2_A_E_RTSChanged FINAL)

    /**
     * 后上刀1辅工 - 压力轴参数
     */
    // 后上刀1辅工 每转脉冲数 （Pulses Per Revolution） [VD4600]
    Q_PROPERTY(QString BU_knife_1_A_E_PPR READ BU_knife_1_A_E_PPR WRITE setBU_knife_1_A_E_PPR NOTIFY BU_knife_1_A_E_PPRChanged FINAL)
    // 后上刀1辅工 减速比 （Reduction Ratio） [VD4604]
    Q_PROPERTY(QString BU_knife_1_A_E_RR READ BU_knife_1_A_E_RR WRITE setBU_knife_1_A_E_RR NOTIFY BU_knife_1_A_E_RRChanged FINAL)
    // 后上刀1辅工 每转位移量 （Displacement Per Revolution） [VD4608]
    Q_PROPERTY(QString BU_knife_1_A_E_DPR READ BU_knife_1_A_E_DPR WRITE setBU_knife_1_A_E_DPR NOTIFY BU_knife_1_A_E_DPRChanged FINAL)
    // 后上刀1辅工 零点位置 （Zero Position） [VD4612]
    Q_PROPERTY(QString BU_knife_1_A_E_ZP READ BU_knife_1_A_E_ZP WRITE setBU_knife_1_A_E_ZP NOTIFY BU_knife_1_A_E_ZPChanged FINAL)
    // 后上刀1辅工 零点补偿 （Zero Offset Compensation） [VD4616]
    Q_PROPERTY(QString BU_knife_1_A_E_ZOC READ BU_knife_1_A_E_ZOC WRITE setBU_knife_1_A_E_ZOC NOTIFY BU_knife_1_A_E_ZOCChanged FINAL)
    // 后上刀1辅工 加速时间 （Acceleration Time） [VD4620]
    Q_PROPERTY(QString BU_knife_1_A_E_T_Acc READ BU_knife_1_A_E_T_Acc WRITE setBU_knife_1_A_E_T_Acc NOTIFY BU_knife_1_A_E_T_AccChanged FINAL)
    // 后上刀1辅工 减速时间 （Deceleration Time） [VD4624]
    Q_PROPERTY(QString BU_knife_1_A_E_T_Dec READ BU_knife_1_A_E_T_Dec WRITE setBU_knife_1_A_E_T_Dec NOTIFY BU_knife_1_A_E_T_DecChanged FINAL)
    // 后上刀1辅工 正极限 （Positive Limit） [VD4628]
    Q_PROPERTY(QString BU_knife_1_A_E_PL READ BU_knife_1_A_E_PL WRITE setBU_knife_1_A_E_PL NOTIFY BU_knife_1_A_E_PLChanged FINAL)
    // 后上刀1辅工 负极限 （Negative Limit） [VD4632]
    Q_PROPERTY(QString BU_knife_1_A_E_NL READ BU_knife_1_A_E_NL WRITE setBU_knife_1_A_E_NL NOTIFY BU_knife_1_A_E_NLChanged FINAL)
    // 后上刀1辅工 手动低速 （Manual Low Speed） [VD4652]
    Q_PROPERTY(QString BU_knife_1_A_E_MLS READ BU_knife_1_A_E_MLS WRITE setBU_knife_1_A_E_MLS NOTIFY BU_knife_1_A_E_MLSChanged FINAL)
    // 后上刀1辅工 手动高速 （Manual High Speed） [VD4656]
    Q_PROPERTY(QString BU_knife_1_A_E_MHS READ BU_knife_1_A_E_MHS WRITE setBU_knife_1_A_E_MHS NOTIFY BU_knife_1_A_E_MHSChanged FINAL)
    // 后上刀1辅工 自动速度 （Automatic Speed） [VD4660]
    Q_PROPERTY(QString BU_knife_1_A_E_AS READ BU_knife_1_A_E_AS WRITE setBU_knife_1_A_E_AS NOTIFY BU_knife_1_A_E_ASChanged FINAL)
    // 后上刀1辅工 实时速度 （Real-Time Speed） [VD4664]
    Q_PROPERTY(QString BU_knife_1_A_E_RTS READ BU_knife_1_A_E_RTS WRITE setBU_knife_1_A_E_RTS NOTIFY BU_knife_1_A_E_RTSChanged FINAL)

    /**
     * 后上刀2辅工 - 压力轴参数
     */
    // 后上刀2辅工 每转脉冲数 （Pulses Per Revolution） [VD4700]
    Q_PROPERTY(QString BU_knife_2_A_E_PPR READ BU_knife_2_A_E_PPR WRITE setBU_knife_2_A_E_PPR NOTIFY BU_knife_2_A_E_PPRChanged FINAL)
    // 后上刀2辅工 减速比 （Reduction Ratio） [VD4704]
    Q_PROPERTY(QString BU_knife_2_A_E_RR READ BU_knife_2_A_E_RR WRITE setBU_knife_2_A_E_RR NOTIFY BU_knife_2_A_E_RRChanged FINAL)
    // 后上刀2辅工 每转位移量 （Displacement Per Revolution） [VD4708]
    Q_PROPERTY(QString BU_knife_2_A_E_DPR READ BU_knife_2_A_E_DPR WRITE setBU_knife_2_A_E_DPR NOTIFY BU_knife_2_A_E_DPRChanged FINAL)
    // 后上刀2辅工 零点位置 （Zero Position） [VD4712]
    Q_PROPERTY(QString BU_knife_2_A_E_ZP READ BU_knife_2_A_E_ZP WRITE setBU_knife_2_A_E_ZP NOTIFY BU_knife_2_A_E_ZPChanged FINAL)
    // 后上刀2辅工 零点补偿 （Zero Offset Compensation） [VD4716]
    Q_PROPERTY(QString BU_knife_2_A_E_ZOC READ BU_knife_2_A_E_ZOC WRITE setBU_knife_2_A_E_ZOC NOTIFY BU_knife_2_A_E_ZOCChanged FINAL)
    // 后上刀2辅工 加速时间 （Acceleration Time） [VD4720]
    Q_PROPERTY(QString BU_knife_2_A_E_T_Acc READ BU_knife_2_A_E_T_Acc WRITE setBU_knife_2_A_E_T_Acc NOTIFY BU_knife_2_A_E_T_AccChanged FINAL)
    // 后上刀2辅工 减速时间 （Deceleration Time） [VD4724]
    Q_PROPERTY(QString BU_knife_2_A_E_T_Dec READ BU_knife_2_A_E_T_Dec WRITE setBU_knife_2_A_E_T_Dec NOTIFY BU_knife_2_A_E_T_DecChanged FINAL)
    // 后上刀2辅工 正极限 （Positive Limit） [VD4728]
    Q_PROPERTY(QString BU_knife_2_A_E_PL READ BU_knife_2_A_E_PL WRITE setBU_knife_2_A_E_PL NOTIFY BU_knife_2_A_E_PLChanged FINAL)
    // 后上刀2辅工 负极限 （Negative Limit） [VD4732]
    Q_PROPERTY(QString BU_knife_2_A_E_NL READ BU_knife_2_A_E_NL WRITE setBU_knife_2_A_E_NL NOTIFY BU_knife_2_A_E_NLChanged FINAL)
    // 后上刀2辅工 手动低速 （Manual Low Speed） [VD4752]
    Q_PROPERTY(QString BU_knife_2_A_E_MLS READ BU_knife_2_A_E_MLS WRITE setBU_knife_2_A_E_MLS NOTIFY BU_knife_2_A_E_MLSChanged FINAL)
    // 后上刀2辅工 手动高速 （Manual High Speed） [VD4756]
    Q_PROPERTY(QString BU_knife_2_A_E_MHS READ BU_knife_2_A_E_MHS WRITE setBU_knife_2_A_E_MHS NOTIFY BU_knife_2_A_E_MHSChanged FINAL)
    // 后上刀2辅工 自动速度 （Automatic Speed） [VD4760]
    Q_PROPERTY(QString BU_knife_2_A_E_AS READ BU_knife_2_A_E_AS WRITE setBU_knife_2_A_E_AS NOTIFY BU_knife_2_A_E_ASChanged FINAL)
    // 后上刀2辅工 实时速度 （Real-Time Speed） [VD4764]
    Q_PROPERTY(QString BU_knife_2_A_E_RTS READ BU_knife_2_A_E_RTS WRITE setBU_knife_2_A_E_RTS NOTIFY BU_knife_2_A_E_RTSChanged FINAL)

    /**
     * 工进1 - 压力轴参数
     */
    // 工进1 每转脉冲数 （Pulses Per Revolution） [VD5200]
    Q_PROPERTY(QString Entry_1_PPR READ Entry_1_PPR WRITE setEntry_1_PPR NOTIFY Entry_1_PPRChanged FINAL)
    // 工进1 减速比 （Reduction Ratio） [VD5204]
    Q_PROPERTY(QString Entry_1_RR READ Entry_1_RR WRITE setEntry_1_RR NOTIFY Entry_1_RRChanged FINAL)
    // 工进1 每转位移量 （Displacement Per Revolution） [VD5208]
    Q_PROPERTY(QString Entry_1_DPR READ Entry_1_DPR WRITE setEntry_1_DPR NOTIFY Entry_1_DPRChanged FINAL)
    // 工进1 零点位置 （Zero Position） [VD5212]
    Q_PROPERTY(QString Entry_1_ZP READ Entry_1_ZP WRITE setEntry_1_ZP NOTIFY Entry_1_ZPChanged FINAL)
    // 工进1 零点补偿 （Zero Offset Compensation） [VD5216]
    Q_PROPERTY(QString Entry_1_ZOC READ Entry_1_ZOC WRITE setEntry_1_ZOC NOTIFY Entry_1_ZOCChanged FINAL)
    // 工进1 加速时间 （Acceleration Time） [VD5220]
    Q_PROPERTY(QString Entry_1_T_Acc READ Entry_1_T_Acc WRITE setEntry_1_T_Acc NOTIFY Entry_1_T_AccChanged FINAL)
    // 工进1 减速时间 （Deceleration Time） [VD5224]
    Q_PROPERTY(QString Entry_1_T_Dec READ Entry_1_T_Dec WRITE setEntry_1_T_Dec NOTIFY Entry_1_T_DecChanged FINAL)
    // 工进1 正极限 （Positive Limit） [VD5228]
    Q_PROPERTY(QString Entry_1_PL READ Entry_1_PL WRITE setEntry_1_PL NOTIFY Entry_1_PLChanged FINAL)
    // 工进1 负极限 （Negative Limit） [VD5232]
    Q_PROPERTY(QString Entry_1_NL READ Entry_1_NL WRITE setEntry_1_NL NOTIFY Entry_1_NLChanged FINAL)
    // 工进1 手动低速 （Manual Low Speed） [VD5252]
    Q_PROPERTY(QString Entry_1_MLS READ Entry_1_MLS WRITE setEntry_1_MLS NOTIFY Entry_1_MLSChanged FINAL)
    // 工进1 手动高速 （Manual High Speed） [VD5256]
    Q_PROPERTY(QString Entry_1_MHS READ Entry_1_MHS WRITE setEntry_1_MHS NOTIFY Entry_1_MHSChanged FINAL)
    // 工进1 自动速度 （Automatic Speed） [VD5260]
    Q_PROPERTY(QString Entry_1_AS READ Entry_1_AS WRITE setEntry_1_AS NOTIFY Entry_1_ASChanged FINAL)
    // 工进1 实时速度 （Real-Time Speed） [VD5264]
    Q_PROPERTY(QString Entry_1_RTS READ Entry_1_RTS WRITE setEntry_1_RTS NOTIFY Entry_1_RTSChanged FINAL)

    /**
     * 工进2 - 压力轴参数
     */
    // 工进2 每转脉冲数 （Pulses Per Revolution） [VD5300]
    Q_PROPERTY(QString Entry_2_PPR READ Entry_2_PPR WRITE setEntry_2_PPR NOTIFY Entry_2_PPRChanged FINAL)
    // 工进2 减速比 （Reduction Ratio） [VD5304]
    Q_PROPERTY(QString Entry_2_RR READ Entry_2_RR WRITE setEntry_2_RR NOTIFY Entry_2_RRChanged FINAL)
    // 工进2 每转位移量 （Displacement Per Revolution） [VD5308]
    Q_PROPERTY(QString Entry_2_DPR READ Entry_2_DPR WRITE setEntry_2_DPR NOTIFY Entry_2_DPRChanged FINAL)
    // 工进2 零点位置 （Zero Position） [VD5312]
    Q_PROPERTY(QString Entry_2_ZP READ Entry_2_ZP WRITE setEntry_2_ZP NOTIFY Entry_2_ZPChanged FINAL)
    // 工进2 零点补偿 （Zero Offset Compensation） [VD5316]
    Q_PROPERTY(QString Entry_2_ZOC READ Entry_2_ZOC WRITE setEntry_2_ZOC NOTIFY Entry_2_ZOCChanged FINAL)
    // 工进2 加速时间 （Acceleration Time） [VD5320]
    Q_PROPERTY(QString Entry_2_T_Acc READ Entry_2_T_Acc WRITE setEntry_2_T_Acc NOTIFY Entry_2_T_AccChanged FINAL)
    // 工进2 减速时间 （Deceleration Time） [VD5324]
    Q_PROPERTY(QString Entry_2_T_Dec READ Entry_2_T_Dec WRITE setEntry_2_T_Dec NOTIFY Entry_2_T_DecChanged FINAL)
    // 工进2 正极限 （Positive Limit） [VD5328]
    Q_PROPERTY(QString Entry_2_PL READ Entry_2_PL WRITE setEntry_2_PL NOTIFY Entry_2_PLChanged FINAL)
    // 工进2 负极限 （Negative Limit） [VD5332]
    Q_PROPERTY(QString Entry_2_NL READ Entry_2_NL WRITE setEntry_2_NL NOTIFY Entry_2_NLChanged FINAL)
    // 工进2 手动低速 （Manual Low Speed） [VD5352]
    Q_PROPERTY(QString Entry_2_MLS READ Entry_2_MLS WRITE setEntry_2_MLS NOTIFY Entry_2_MLSChanged FINAL)
    // 工进2 手动高速 （Manual High Speed） [VD5356]
    Q_PROPERTY(QString Entry_2_MHS READ Entry_2_MHS WRITE setEntry_2_MHS NOTIFY Entry_2_MHSChanged FINAL)
    // 工进2 自动速度 （Automatic Speed） [VD5360]
    Q_PROPERTY(QString Entry_2_AS READ Entry_2_AS WRITE setEntry_2_AS NOTIFY Entry_2_ASChanged FINAL)
    // 工进2 实时速度 （Real-Time Speed） [VD5364]
    Q_PROPERTY(QString Entry_2_RTS READ Entry_2_RTS WRITE setEntry_2_RTS NOTIFY Entry_2_RTSChanged FINAL)

    /**
     * 前上刀1 - 刀盘轴参数
     */
    // 前上刀1 每转脉冲数 （Pulses Per Revolution） [VD4000]
    Q_PROPERTY(QString FU_knife_1_PPR READ FU_knife_1_PPR WRITE setFU_knife_1_PPR NOTIFY FU_knife_1_PPRChanged FINAL)
    // 前上刀1 减速比 （Reduction Ratio） [VD4004]
    Q_PROPERTY(QString FU_knife_1_RR READ FU_knife_1_RR WRITE setFU_knife_1_RR NOTIFY FU_knife_1_RRChanged FINAL)
    // 前上刀1 每转位移量 （Displacement Per Revolution） [VD4008]
    Q_PROPERTY(QString FU_knife_1_DPR READ FU_knife_1_DPR WRITE setFU_knife_1_DPR NOTIFY FU_knife_1_DPRChanged FINAL)
    // 前上刀1 零点位置 （Zero Position） [VD4012]
    Q_PROPERTY(QString FU_knife_1_ZP READ FU_knife_1_ZP WRITE setFU_knife_1_ZP NOTIFY FU_knife_1_ZPChanged FINAL)
    // 前上刀1 零点补偿 （Zero Offset Compensation） [VD4016]
    Q_PROPERTY(QString FU_knife_1_ZOC READ FU_knife_1_ZOC WRITE setFU_knife_1_ZOC NOTIFY FU_knife_1_ZOCChanged FINAL)
    // 前上刀1 加速时间 （Acceleration Time） [VD4020]
    Q_PROPERTY(QString FU_knife_1_T_Acc READ FU_knife_1_T_Acc WRITE setFU_knife_1_T_Acc NOTIFY FU_knife_1_T_AccChanged FINAL)
    // 前上刀1 减速时间 （Deceleration Time） [VD4024]
    Q_PROPERTY(QString FU_knife_1_T_Dec READ FU_knife_1_T_Dec WRITE setFU_knife_1_T_Dec NOTIFY FU_knife_1_T_DecChanged FINAL)
    // 前上刀1 正极限 （Positive Limit） [VD4028]
    Q_PROPERTY(QString FU_knife_1_PL READ FU_knife_1_PL WRITE setFU_knife_1_PL NOTIFY FU_knife_1_PLChanged FINAL)
    // 前上刀1 负极限 （Negative Limit） [VD4032]
    Q_PROPERTY(QString FU_knife_1_NL READ FU_knife_1_NL WRITE setFU_knife_1_NL NOTIFY FU_knife_1_NLChanged FINAL)
    // 前上刀1 手动低速 （Manual Low Speed） [VD4052]
    Q_PROPERTY(QString FU_knife_1_MLS READ FU_knife_1_MLS WRITE setFU_knife_1_MLS NOTIFY FU_knife_1_MLSChanged FINAL)
    // 前上刀1 手动高速 （Manual High Speed） [VD4056]
    Q_PROPERTY(QString FU_knife_1_MHS READ FU_knife_1_MHS WRITE setFU_knife_1_MHS NOTIFY FU_knife_1_MHSChanged FINAL)
    // 前上刀1 自动速度 （Automatic Speed） [VD4060]
    Q_PROPERTY(QString FU_knife_1_AS READ FU_knife_1_AS WRITE setFU_knife_1_AS NOTIFY FU_knife_1_ASChanged FINAL)
    // 前上刀1 实时速度 （Real-Time Speed） [VD4064]
    Q_PROPERTY(QString FU_knife_1_RTS READ FU_knife_1_RTS WRITE setFU_knife_1_RTS NOTIFY FU_knife_1_RTSChanged FINAL)

    /**
     * 前上刀2 - 刀盘轴参数
     */
    // 前上刀2 每转脉冲数 （Pulses Per Revolution） [VD4100]
    Q_PROPERTY(QString FU_knife_2_PPR READ FU_knife_2_PPR WRITE setFU_knife_2_PPR NOTIFY FU_knife_2_PPRChanged FINAL)
    // 前上刀2 减速比 （Reduction Ratio） [VD4104]
    Q_PROPERTY(QString FU_knife_2_RR READ FU_knife_2_RR WRITE setFU_knife_2_RR NOTIFY FU_knife_2_RRChanged FINAL)
    // 前上刀2 每转位移量 （Displacement Per Revolution） [VD4108]
    Q_PROPERTY(QString FU_knife_2_DPR READ FU_knife_2_DPR WRITE setFU_knife_2_DPR NOTIFY FU_knife_2_DPRChanged FINAL)
    // 前上刀2 零点位置 （Zero Position） [VD4112]
    Q_PROPERTY(QString FU_knife_2_ZP READ FU_knife_2_ZP WRITE setFU_knife_2_ZP NOTIFY FU_knife_2_ZPChanged FINAL)
    // 前上刀2 零点补偿 （Zero Offset Compensation） [VD4116]
    Q_PROPERTY(QString FU_knife_2_ZOC READ FU_knife_2_ZOC WRITE setFU_knife_2_ZOC NOTIFY FU_knife_2_ZOCChanged FINAL)
    // 前上刀2 加速时间 （Acceleration Time） [VD4120]
    Q_PROPERTY(QString FU_knife_2_T_Acc READ FU_knife_2_T_Acc WRITE setFU_knife_2_T_Acc NOTIFY FU_knife_2_T_AccChanged FINAL)
    // 前上刀2 减速时间 （Deceleration Time） [VD4124]
    Q_PROPERTY(QString FU_knife_2_T_Dec READ FU_knife_2_T_Dec WRITE setFU_knife_2_T_Dec NOTIFY FU_knife_2_T_DecChanged FINAL)
    // 前上刀2 正极限 （Positive Limit） [VD4128]
    Q_PROPERTY(QString FU_knife_2_PL READ FU_knife_2_PL WRITE setFU_knife_2_PL NOTIFY FU_knife_2_PLChanged FINAL)
    // 前上刀2 负极限 （Negative Limit） [VD4132]
    Q_PROPERTY(QString FU_knife_2_NL READ FU_knife_2_NL WRITE setFU_knife_2_NL NOTIFY FU_knife_2_NLChanged FINAL)
    // 前上刀2 手动低速 （Manual Low Speed） [VD4152]
    Q_PROPERTY(QString FU_knife_2_MLS READ FU_knife_2_MLS WRITE setFU_knife_2_MLS NOTIFY FU_knife_2_MLSChanged FINAL)
    // 前上刀2 手动高速 （Manual High Speed） [VD4156]
    Q_PROPERTY(QString FU_knife_2_MHS READ FU_knife_2_MHS WRITE setFU_knife_2_MHS NOTIFY FU_knife_2_MHSChanged FINAL)
    // 前上刀2 自动速度 （Automatic Speed） [VD4160]
    Q_PROPERTY(QString FU_knife_2_AS READ FU_knife_2_AS WRITE setFU_knife_2_AS NOTIFY FU_knife_2_ASChanged FINAL)
    // 前上刀2 实时速度 （Real-Time Speed） [VD4164]
    Q_PROPERTY(QString FU_knife_2_RTS READ FU_knife_2_RTS WRITE setFU_knife_2_RTS NOTIFY FU_knife_2_RTSChanged FINAL)

    /**
     * 后上刀1 - 刀盘轴参数
     */
    // 后上刀1 每转脉冲数 （Pulses Per Revolution） [VD4400]
    Q_PROPERTY(QString BU_knife_1_PPR READ BU_knife_1_PPR WRITE setBU_knife_1_PPR NOTIFY BU_knife_1_PPRChanged FINAL)
    // 后上刀1 减速比 （Reduction Ratio） [VD4404]
    Q_PROPERTY(QString BU_knife_1_RR READ BU_knife_1_RR WRITE setBU_knife_1_RR NOTIFY BU_knife_1_RRChanged FINAL)
    // 后上刀1 每转位移量 （Displacement Per Revolution） [VD4408]
    Q_PROPERTY(QString BU_knife_1_DPR READ BU_knife_1_DPR WRITE setBU_knife_1_DPR NOTIFY BU_knife_1_DPRChanged FINAL)
    // 后上刀1 零点位置 （Zero Position） [VD4412]
    Q_PROPERTY(QString BU_knife_1_ZP READ BU_knife_1_ZP WRITE setBU_knife_1_ZP NOTIFY BU_knife_1_ZPChanged FINAL)
    // 后上刀1 零点补偿 （Zero Offset Compensation） [VD4416]
    Q_PROPERTY(QString BU_knife_1_ZOC READ BU_knife_1_ZOC WRITE setBU_knife_1_ZOC NOTIFY BU_knife_1_ZOCChanged FINAL)
    // 后上刀1 加速时间 （Acceleration Time） [VD4420]
    Q_PROPERTY(QString BU_knife_1_T_Acc READ BU_knife_1_T_Acc WRITE setBU_knife_1_T_Acc NOTIFY BU_knife_1_T_AccChanged FINAL)
    // 后上刀1 减速时间 （Deceleration Time） [VD4424]
    Q_PROPERTY(QString BU_knife_1_T_Dec READ BU_knife_1_T_Dec WRITE setBU_knife_1_T_Dec NOTIFY BU_knife_1_T_DecChanged FINAL)
    // 后上刀1 正极限 （Positive Limit） [VD4428]
    Q_PROPERTY(QString BU_knife_1_PL READ BU_knife_1_PL WRITE setBU_knife_1_PL NOTIFY BU_knife_1_PLChanged FINAL)
    // 后上刀1 负极限 （Negative Limit） [VD4432]
    Q_PROPERTY(QString BU_knife_1_NL READ BU_knife_1_NL WRITE setBU_knife_1_NL NOTIFY BU_knife_1_NLChanged FINAL)
    // 后上刀1 手动低速 （Manual Low Speed） [VD4452]
    Q_PROPERTY(QString BU_knife_1_MLS READ BU_knife_1_MLS WRITE setBU_knife_1_MLS NOTIFY BU_knife_1_MLSChanged FINAL)
    // 后上刀1 手动高速 （Manual High Speed） [VD4456]
    Q_PROPERTY(QString BU_knife_1_MHS READ BU_knife_1_MHS WRITE setBU_knife_1_MHS NOTIFY BU_knife_1_MHSChanged FINAL)
    // 后上刀1 自动速度 （Automatic Speed） [VD4460]
    Q_PROPERTY(QString BU_knife_1_AS READ BU_knife_1_AS WRITE setBU_knife_1_AS NOTIFY BU_knife_1_ASChanged FINAL)
    // 后上刀1 实时速度 （Real-Time Speed） [VD4464]
    Q_PROPERTY(QString BU_knife_1_RTS READ BU_knife_1_RTS WRITE setBU_knife_1_RTS NOTIFY BU_knife_1_RTSChanged FINAL)

    /**
     * 后上刀2 - 刀盘轴参数
     */
    // 后上刀2 每转脉冲数 （Pulses Per Revolution） [VD4500]
    Q_PROPERTY(QString BU_knife_2_PPR READ BU_knife_2_PPR WRITE setBU_knife_2_PPR NOTIFY BU_knife_2_PPRChanged FINAL)
    // 后上刀2 减速比 （Reduction Ratio） [VD4504]
    Q_PROPERTY(QString BU_knife_2_RR READ BU_knife_2_RR WRITE setBU_knife_2_RR NOTIFY BU_knife_2_RRChanged FINAL)
    // 后上刀2 每转位移量 （Displacement Per Revolution） [VD4508]
    Q_PROPERTY(QString BU_knife_2_DPR READ BU_knife_2_DPR WRITE setBU_knife_2_DPR NOTIFY BU_knife_2_DPRChanged FINAL)
    // 后上刀2 零点位置 （Zero Position） [VD4512]
    Q_PROPERTY(QString BU_knife_2_ZP READ BU_knife_2_ZP WRITE setBU_knife_2_ZP NOTIFY BU_knife_2_ZPChanged FINAL)
    // 后上刀2 零点补偿 （Zero Offset Compensation） [VD4516]
    Q_PROPERTY(QString BU_knife_2_ZOC READ BU_knife_2_ZOC WRITE setBU_knife_2_ZOC NOTIFY BU_knife_2_ZOCChanged FINAL)
    // 后上刀2 加速时间 （Acceleration Time） [VD4520]
    Q_PROPERTY(QString BU_knife_2_T_Acc READ BU_knife_2_T_Acc WRITE setBU_knife_2_T_Acc NOTIFY BU_knife_2_T_AccChanged FINAL)
    // 后上刀2 减速时间 （Deceleration Time） [VD4524]
    Q_PROPERTY(QString BU_knife_2_T_Dec READ BU_knife_2_T_Dec WRITE setBU_knife_2_T_Dec NOTIFY BU_knife_2_T_DecChanged FINAL)
    // 后上刀2 正极限 （Positive Limit） [VD4528]
    Q_PROPERTY(QString BU_knife_2_PL READ BU_knife_2_PL WRITE setBU_knife_2_PL NOTIFY BU_knife_2_PLChanged FINAL)
    // 后上刀2 负极限 （Negative Limit） [VD4532]
    Q_PROPERTY(QString BU_knife_2_NL READ BU_knife_2_NL WRITE setBU_knife_2_NL NOTIFY BU_knife_2_NLChanged FINAL)
    // 后上刀2 手动低速 （Manual Low Speed） [VD4552]
    Q_PROPERTY(QString BU_knife_2_MLS READ BU_knife_2_MLS WRITE setBU_knife_2_MLS NOTIFY BU_knife_2_MLSChanged FINAL)
    // 后上刀2 手动高速 （Manual High Speed） [VD4556]
    Q_PROPERTY(QString BU_knife_2_MHS READ BU_knife_2_MHS WRITE setBU_knife_2_MHS NOTIFY BU_knife_2_MHSChanged FINAL)
    // 后上刀2 自动速度 （Automatic Speed） [VD4560]
    Q_PROPERTY(QString BU_knife_2_AS READ BU_knife_2_AS WRITE setBU_knife_2_AS NOTIFY BU_knife_2_ASChanged FINAL)
    // 后上刀2 实时速度 （Real-Time Speed） [VD4564]
    Q_PROPERTY(QString BU_knife_2_RTS READ BU_knife_2_RTS WRITE setBU_knife_2_RTS NOTIFY BU_knife_2_RTSChanged FINAL)

    /**
     * 前下刀1 - 刀盘轴参数
     */
    // 前下刀1 每转脉冲数 （Pulses Per Revolution） [VD4800]
    Q_PROPERTY(QString FD_knife_1_PPR READ FD_knife_1_PPR WRITE setFD_knife_1_PPR NOTIFY FD_knife_1_PPRChanged FINAL)
    // 前下刀1 减速比 （Reduction Ratio） [VD4804]
    Q_PROPERTY(QString FD_knife_1_RR READ FD_knife_1_RR WRITE setFD_knife_1_RR NOTIFY FD_knife_1_RRChanged FINAL)
    // 前下刀1 每转位移量 （Displacement Per Revolution） [VD4808]
    Q_PROPERTY(QString FD_knife_1_DPR READ FD_knife_1_DPR WRITE setFD_knife_1_DPR NOTIFY FD_knife_1_DPRChanged FINAL)
    // 前下刀1 零点位置 （Zero Position） [VD4812]
    Q_PROPERTY(QString FD_knife_1_ZP READ FD_knife_1_ZP WRITE setFD_knife_1_ZP NOTIFY FD_knife_1_ZPChanged FINAL)
    // 前下刀1 零点补偿 （Zero Offset Compensation） [VD4816]
    Q_PROPERTY(QString FD_knife_1_ZOC READ FD_knife_1_ZOC WRITE setFD_knife_1_ZOC NOTIFY FD_knife_1_ZOCChanged FINAL)
    // 前下刀1 加速时间 （Acceleration Time） [VD4820]
    Q_PROPERTY(QString FD_knife_1_T_Acc READ FD_knife_1_T_Acc WRITE setFD_knife_1_T_Acc NOTIFY FD_knife_1_T_AccChanged FINAL)
    // 前下刀1 减速时间 （Deceleration Time） [VD4824]
    Q_PROPERTY(QString FD_knife_1_T_Dec READ FD_knife_1_T_Dec WRITE setFD_knife_1_T_Dec NOTIFY FD_knife_1_T_DecChanged FINAL)
    // 前下刀1 正极限 （Positive Limit） [VD4828]
    Q_PROPERTY(QString FD_knife_1_PL READ FD_knife_1_PL WRITE setFD_knife_1_PL NOTIFY FD_knife_1_PLChanged FINAL)
    // 前下刀1 负极限 （Negative Limit） [VD4832]
    Q_PROPERTY(QString FD_knife_1_NL READ FD_knife_1_NL WRITE setFD_knife_1_NL NOTIFY FD_knife_1_NLChanged FINAL)
    // 前下刀1 手动低速 （Manual Low Speed） [VD4852]
    Q_PROPERTY(QString FD_knife_1_MLS READ FD_knife_1_MLS WRITE setFD_knife_1_MLS NOTIFY FD_knife_1_MLSChanged FINAL)
    // 前下刀1 手动高速 （Manual High Speed） [VD4856]
    Q_PROPERTY(QString FD_knife_1_MHS READ FD_knife_1_MHS WRITE setFD_knife_1_MHS NOTIFY FD_knife_1_MHSChanged FINAL)
    // 前下刀1 自动速度 （Automatic Speed） [VD4860]
    Q_PROPERTY(QString FD_knife_1_AS READ FD_knife_1_AS WRITE setFD_knife_1_AS NOTIFY FD_knife_1_ASChanged FINAL)
    // 前下刀1 实时速度 （Real-Time Speed） [VD4864]
    Q_PROPERTY(QString FD_knife_1_RTS READ FD_knife_1_RTS WRITE setFD_knife_1_RTS NOTIFY FD_knife_1_RTSChanged FINAL)

    /**
     * 前下刀2 - 刀盘轴参数
     */
    // 前下刀2 每转脉冲数 （Pulses Per Revolution） [VD4900]
    Q_PROPERTY(QString FD_knife_2_PPR READ FD_knife_2_PPR WRITE setFD_knife_2_PPR NOTIFY FD_knife_2_PPRChanged FINAL)
    // 前下刀2 减速比 （Reduction Ratio） [VD4904]
    Q_PROPERTY(QString FD_knife_2_RR READ FD_knife_2_RR WRITE setFD_knife_2_RR NOTIFY FD_knife_2_RRChanged FINAL)
    // 前下刀2 每转位移量 （Displacement Per Revolution） [VD4908]
    Q_PROPERTY(QString FD_knife_2_DPR READ FD_knife_2_DPR WRITE setFD_knife_2_DPR NOTIFY FD_knife_2_DPRChanged FINAL)
    // 前下刀2 零点位置 （Zero Position） [VD4912]
    Q_PROPERTY(QString FD_knife_2_ZP READ FD_knife_2_ZP WRITE setFD_knife_2_ZP NOTIFY FD_knife_2_ZPChanged FINAL)
    // 前下刀2 零点补偿 （Zero Offset Compensation） [VD4916]
    Q_PROPERTY(QString FD_knife_2_ZOC READ FD_knife_2_ZOC WRITE setFD_knife_2_ZOC NOTIFY FD_knife_2_ZOCChanged FINAL)
    // 前下刀2 加速时间 （Acceleration Time） [VD4920]
    Q_PROPERTY(QString FD_knife_2_T_Acc READ FD_knife_2_T_Acc WRITE setFD_knife_2_T_Acc NOTIFY FD_knife_2_T_AccChanged FINAL)
    // 前下刀2 减速时间 （Deceleration Time） [VD4924]
    Q_PROPERTY(QString FD_knife_2_T_Dec READ FD_knife_2_T_Dec WRITE setFD_knife_2_T_Dec NOTIFY FD_knife_2_T_DecChanged FINAL)
    // 前下刀2 正极限 （Positive Limit） [VD4928]
    Q_PROPERTY(QString FD_knife_2_PL READ FD_knife_2_PL WRITE setFD_knife_2_PL NOTIFY FD_knife_2_PLChanged FINAL)
    // 前下刀2 负极限 （Negative Limit） [VD4932]
    Q_PROPERTY(QString FD_knife_2_NL READ FD_knife_2_NL WRITE setFD_knife_2_NL NOTIFY FD_knife_2_NLChanged FINAL)
    // 前下刀2 手动低速 （Manual Low Speed） [VD4952]
    Q_PROPERTY(QString FD_knife_2_MLS READ FD_knife_2_MLS WRITE setFD_knife_2_MLS NOTIFY FD_knife_2_MLSChanged FINAL)
    // 前下刀2 手动高速 （Manual High Speed） [VD4956]
    Q_PROPERTY(QString FD_knife_2_MHS READ FD_knife_2_MHS WRITE setFD_knife_2_MHS NOTIFY FD_knife_2_MHSChanged FINAL)
    // 前下刀2 自动速度 （Automatic Speed） [VD4960]
    Q_PROPERTY(QString FD_knife_2_AS READ FD_knife_2_AS WRITE setFD_knife_2_AS NOTIFY FD_knife_2_ASChanged FINAL)
    // 前下刀2 实时速度 （Real-Time Speed） [VD4964]
    Q_PROPERTY(QString FD_knife_2_RTS READ FD_knife_2_RTS WRITE setFD_knife_2_RTS NOTIFY FD_knife_2_RTSChanged FINAL)

    /**
     * 后下刀1 - 刀盘轴参数
     */
    // 后下刀1 每转脉冲数 （Pulses Per Revolution） [VD5000]
    Q_PROPERTY(QString BD_knife_1_PPR READ BD_knife_1_PPR WRITE setBD_knife_1_PPR NOTIFY BD_knife_1_PPRChanged FINAL)
    // 后下刀1 减速比 （Reduction Ratio） [VD5004]
    Q_PROPERTY(QString BD_knife_1_RR READ BD_knife_1_RR WRITE setBD_knife_1_RR NOTIFY BD_knife_1_RRChanged FINAL)
    // 后下刀1 每转位移量 （Displacement Per Revolution） [VD5008]
    Q_PROPERTY(QString BD_knife_1_DPR READ BD_knife_1_DPR WRITE setBD_knife_1_DPR NOTIFY BD_knife_1_DPRChanged FINAL)
    // 后下刀1 零点位置 （Zero Position） [VD5012]
    Q_PROPERTY(QString BD_knife_1_ZP READ BD_knife_1_ZP WRITE setBD_knife_1_ZP NOTIFY BD_knife_1_ZPChanged FINAL)
    // 后下刀1 零点补偿 （Zero Offset Compensation） [VD5016]
    Q_PROPERTY(QString BD_knife_1_ZOC READ BD_knife_1_ZOC WRITE setBD_knife_1_ZOC NOTIFY BD_knife_1_ZOCChanged FINAL)
    // 后下刀1 加速时间 （Acceleration Time） [VD5020]
    Q_PROPERTY(QString BD_knife_1_T_Acc READ BD_knife_1_T_Acc WRITE setBD_knife_1_T_Acc NOTIFY BD_knife_1_T_AccChanged FINAL)
    // 后下刀1 减速时间 （Deceleration Time） [VD5024]
    Q_PROPERTY(QString BD_knife_1_T_Dec READ BD_knife_1_T_Dec WRITE setBD_knife_1_T_Dec NOTIFY BD_knife_1_T_DecChanged FINAL)
    // 后下刀1 正极限 （Positive Limit） [VD5028]
    Q_PROPERTY(QString BD_knife_1_PL READ BD_knife_1_PL WRITE setBD_knife_1_PL NOTIFY BD_knife_1_PLChanged FINAL)
    // 后下刀1 负极限 （Negative Limit） [VD5032]
    Q_PROPERTY(QString BD_knife_1_NL READ BD_knife_1_NL WRITE setBD_knife_1_NL NOTIFY BD_knife_1_NLChanged FINAL)
    // 后下刀1 手动低速 （Manual Low Speed） [VD5052]
    Q_PROPERTY(QString BD_knife_1_MLS READ BD_knife_1_MLS WRITE setBD_knife_1_MLS NOTIFY BD_knife_1_MLSChanged FINAL)
    // 后下刀1 手动高速 （Manual High Speed） [VD5056]
    Q_PROPERTY(QString BD_knife_1_MHS READ BD_knife_1_MHS WRITE setBD_knife_1_MHS NOTIFY BD_knife_1_MHSChanged FINAL)
    // 后下刀1 自动速度 （Automatic Speed） [VD5060]
    Q_PROPERTY(QString BD_knife_1_AS READ BD_knife_1_AS WRITE setBD_knife_1_AS NOTIFY BD_knife_1_ASChanged FINAL)
    // 后下刀1 实时速度 （Real-Time Speed） [VD5064]
    Q_PROPERTY(QString BD_knife_1_RTS READ BD_knife_1_RTS WRITE setBD_knife_1_RTS NOTIFY BD_knife_1_RTSChanged FINAL)

    /**
     * 后下刀2 - 刀盘轴参数
     */
    // 后下刀2 每转脉冲数 （Pulses Per Revolution） [VD5100]
    Q_PROPERTY(QString BD_knife_2_PPR READ BD_knife_2_PPR WRITE setBD_knife_2_PPR NOTIFY BD_knife_2_PPRChanged FINAL)
    // 后下刀2 减速比 （Reduction Ratio） [VD5104]
    Q_PROPERTY(QString BD_knife_2_RR READ BD_knife_2_RR WRITE setBD_knife_2_RR NOTIFY BD_knife_2_RRChanged FINAL)
    // 后下刀2 每转位移量 （Displacement Per Revolution） [VD5108]
    Q_PROPERTY(QString BD_knife_2_DPR READ BD_knife_2_DPR WRITE setBD_knife_2_DPR NOTIFY BD_knife_2_DPRChanged FINAL)
    // 后下刀2 零点位置 （Zero Position） [VD5112]
    Q_PROPERTY(QString BD_knife_2_ZP READ BD_knife_2_ZP WRITE setBD_knife_2_ZP NOTIFY BD_knife_2_ZPChanged FINAL)
    // 后下刀2 零点补偿 （Zero Offset Compensation） [VD5116]
    Q_PROPERTY(QString BD_knife_2_ZOC READ BD_knife_2_ZOC WRITE setBD_knife_2_ZOC NOTIFY BD_knife_2_ZOCChanged FINAL)
    // 后下刀2 加速时间 （Acceleration Time） [VD5120]
    Q_PROPERTY(QString BD_knife_2_T_Acc READ BD_knife_2_T_Acc WRITE setBD_knife_2_T_Acc NOTIFY BD_knife_2_T_AccChanged FINAL)
    // 后下刀2 减速时间 （Deceleration Time） [VD5124]
    Q_PROPERTY(QString BD_knife_2_T_Dec READ BD_knife_2_T_Dec WRITE setBD_knife_2_T_Dec NOTIFY BD_knife_2_T_DecChanged FINAL)
    // 后下刀2 正极限 （Positive Limit） [VD5128]
    Q_PROPERTY(QString BD_knife_2_PL READ BD_knife_2_PL WRITE setBD_knife_2_PL NOTIFY BD_knife_2_PLChanged FINAL)
    // 后下刀2 负极限 （Negative Limit） [VD5132]
    Q_PROPERTY(QString BD_knife_2_NL READ BD_knife_2_NL WRITE setBD_knife_2_NL NOTIFY BD_knife_2_NLChanged FINAL)
    // 后下刀2 手动低速 （Manual Low Speed） [VD5152]
    Q_PROPERTY(QString BD_knife_2_MLS READ BD_knife_2_MLS WRITE setBD_knife_2_MLS NOTIFY BD_knife_2_MLSChanged FINAL)
    // 后下刀2 手动高速 （Manual High Speed） [VD5156]
    Q_PROPERTY(QString BD_knife_2_MHS READ BD_knife_2_MHS WRITE setBD_knife_2_MHS NOTIFY BD_knife_2_MHSChanged FINAL)
    // 后下刀2 自动速度 （Automatic Speed） [VD5160]
    Q_PROPERTY(QString BD_knife_2_AS READ BD_knife_2_AS WRITE setBD_knife_2_AS NOTIFY BD_knife_2_ASChanged FINAL)
    // 后下刀2 实时速度 （Real-Time Speed） [VD5164]
    Q_PROPERTY(QString BD_knife_2_RTS READ BD_knife_2_RTS WRITE setBD_knife_2_RTS NOTIFY BD_knife_2_RTSChanged FINAL)

    /**
     * 压辊 - 附加轴参数
     */
    // 压辊 每转脉冲数 （Pulses Per Revolution） [VD5400]
    Q_PROPERTY(QString Idler_PPR READ Idler_PPR WRITE setIdler_PPR NOTIFY Idler_PPRChanged FINAL)
    // 压辊 减速比 （Reduction Ratio） [VD5404]
    Q_PROPERTY(QString Idler_RR READ Idler_RR WRITE setIdler_RR NOTIFY Idler_RRChanged FINAL)
    // 压辊 每转位移量 （Displacement Per Revolution） [VD5408]
    Q_PROPERTY(QString Idler_DPR READ Idler_DPR WRITE setIdler_DPR NOTIFY Idler_DPRChanged FINAL)
    // 压辊 零点位置 （Zero Position） [VD5412]
    Q_PROPERTY(QString Idler_ZP READ Idler_ZP WRITE setIdler_ZP NOTIFY Idler_ZPChanged FINAL)
    // 压辊 零点补偿 （Zero Offset Compensation） [VD5416]
    Q_PROPERTY(QString Idler_ZOC READ Idler_ZOC WRITE setIdler_ZOC NOTIFY Idler_ZOCChanged FINAL)
    // 压辊 加速时间 （Acceleration Time） [VD5420]
    Q_PROPERTY(QString Idler_T_Acc READ Idler_T_Acc WRITE setIdler_T_Acc NOTIFY Idler_T_AccChanged FINAL)
    // 压辊 减速时间 （Deceleration Time） [VD5424]
    Q_PROPERTY(QString Idler_T_Dec READ Idler_T_Dec WRITE setIdler_T_Dec NOTIFY Idler_T_DecChanged FINAL)
    // 压辊 正极限 （Positive Limit） [VD5428]
    Q_PROPERTY(QString Idler_PL READ Idler_PL WRITE setIdler_PL NOTIFY Idler_PLChanged FINAL)
    // 压辊 负极限 （Negative Limit） [VD5432]
    Q_PROPERTY(QString Idler_NL READ Idler_NL WRITE setIdler_NL NOTIFY Idler_NLChanged FINAL)
    // 压辊 手动低速 （Manual Low Speed） [VD5452]
    Q_PROPERTY(QString Idler_MLS READ Idler_MLS WRITE setIdler_MLS NOTIFY Idler_MLSChanged FINAL)
    // 压辊 手动高速 （Manual High Speed） [VD5456]
    Q_PROPERTY(QString Idler_MHS READ Idler_MHS WRITE setIdler_MHS NOTIFY Idler_MHSChanged FINAL)
    // 压辊 自动速度 （Automatic Speed） [VD5460]
    Q_PROPERTY(QString Idler_AS READ Idler_AS WRITE setIdler_AS NOTIFY Idler_ASChanged FINAL)
    // 压辊 实时速度 （Real-Time Speed） [VD5464]
    Q_PROPERTY(QString Idler_RTS READ Idler_RTS WRITE setIdler_RTS NOTIFY Idler_RTSChanged FINAL)

    // 联动上限  VD5740
    Q_PROPERTY(QString knife_Max_Distance READ knife_Max_Distance WRITE setknife_Max_Distance NOTIFY knife_Max_DistanceChanged FINAL)
    // 联动下限  VD5744
    Q_PROPERTY(QString knife_Min_Distance READ knife_Min_Distance WRITE setknife_Min_Distance NOTIFY knife_Min_DistanceChanged FINAL)


    /**
     *  定位禁止信号(定时器轮询)
     */
    // 前1 定位禁止信号
    Q_PROPERTY(int F_1_Location_Forbid READ F_1_Location_Forbid WRITE setF_1_Location_Forbid NOTIFY F_1_Location_ForbidChanged FINAL)
    // 前2 定位禁止信号
    Q_PROPERTY(int F_2_Location_Forbid READ F_2_Location_Forbid WRITE setF_2_Location_Forbid NOTIFY F_2_Location_ForbidChanged FINAL)
    // 后1 定位禁止信号
    Q_PROPERTY(int B_1_Location_Forbid READ B_1_Location_Forbid WRITE setB_1_Location_Forbid NOTIFY B_1_Location_ForbidChanged FINAL)
    // 后2 定位禁止信号
    Q_PROPERTY(int B_2_Location_Forbid READ B_2_Location_Forbid WRITE setB_2_Location_Forbid NOTIFY B_2_Location_ForbidChanged FINAL)

    /**
     * 报警信号 状态信号 (60个)
     */
    Q_PROPERTY(int FU1_location_state READ FU1_location_state WRITE setFU1_location_state NOTIFY FU1_location_stateChanged FINAL)
    Q_PROPERTY(int FU2_location_state READ FU2_location_state WRITE setFU2_location_state NOTIFY FU2_location_stateChanged FINAL)
    Q_PROPERTY(int FU1_AE_location_state READ FU1_AE_location_state WRITE setFU1_AE_location_state NOTIFY FU1_AE_location_stateChanged FINAL)
    Q_PROPERTY(int FU2_AE_location_state READ FU2_AE_location_state WRITE setFU2_AE_location_state NOTIFY FU2_AE_location_stateChanged FINAL)
    Q_PROPERTY(int BU1_location_state READ BU1_location_state WRITE setBU1_location_state NOTIFY BU1_location_stateChanged FINAL)
    Q_PROPERTY(int BU2_location_state READ BU2_location_state WRITE setBU2_location_state NOTIFY BU2_location_stateChanged FINAL)
    Q_PROPERTY(int BU1_AE_location_state READ BU1_AE_location_state WRITE setBU1_AE_location_state NOTIFY BU1_AE_location_stateChanged FINAL)
    Q_PROPERTY(int BU2_AE_location_state READ BU2_AE_location_state WRITE setBU2_AE_location_state NOTIFY BU2_AE_location_stateChanged FINAL)
    Q_PROPERTY(int FD1_location_state READ FD1_location_state WRITE setFD1_location_state NOTIFY FD1_location_stateChanged FINAL)
    Q_PROPERTY(int FD2_location_state READ FD2_location_state WRITE setFD2_location_state NOTIFY FD2_location_stateChanged FINAL)
    Q_PROPERTY(int BD1_location_state READ BD1_location_state WRITE setBD1_location_state NOTIFY BD1_location_stateChanged FINAL)
    Q_PROPERTY(int BD2_location_state READ BD2_location_state WRITE setBD2_location_state NOTIFY BD2_location_stateChanged FINAL)
    Q_PROPERTY(int Entry1_location_state READ Entry1_location_state WRITE setEntry1_location_state NOTIFY Entry1_location_stateChanged FINAL)
    Q_PROPERTY(int Entry2_location_state READ Entry2_location_state WRITE setEntry2_location_state NOTIFY Entry2_location_stateChanged FINAL)
    Q_PROPERTY(int Idler_location_state READ Idler_location_state WRITE setIdler_location_state NOTIFY Idler_location_stateChanged FINAL)

    Q_PROPERTY(int FU1_warning_state READ FU1_warning_state WRITE setFU1_warning_state NOTIFY FU1_warning_stateChanged FINAL)
    Q_PROPERTY(int FU2_warning_state READ FU2_warning_state WRITE setFU2_warning_state NOTIFY FU2_warning_stateChanged FINAL)
    Q_PROPERTY(int FU1_AE_warning_state READ FU1_AE_warning_state WRITE setFU1_AE_warning_state NOTIFY FU1_AE_warning_stateChanged FINAL)
    Q_PROPERTY(int FU2_AE_warning_state READ FU2_AE_warning_state WRITE setFU2_AE_warning_state NOTIFY FU2_AE_warning_stateChanged FINAL)
    Q_PROPERTY(int BU1_warning_state READ BU1_warning_state WRITE setBU1_warning_state NOTIFY BU1_warning_stateChanged FINAL)
    Q_PROPERTY(int BU2_warning_state READ BU2_warning_state WRITE setBU2_warning_state NOTIFY BU2_warning_stateChanged FINAL)
    Q_PROPERTY(int BU1_AE_warning_state READ BU1_AE_warning_state WRITE setBU1_AE_warning_state NOTIFY BU1_AE_warning_stateChanged FINAL)
    Q_PROPERTY(int BU2_AE_warning_state READ BU2_AE_warning_state WRITE setBU2_AE_warning_state NOTIFY BU2_AE_warning_stateChanged FINAL)
    Q_PROPERTY(int FD1_warning_state READ FD1_warning_state WRITE setFD1_warning_state NOTIFY FD1_warning_stateChanged FINAL)
    Q_PROPERTY(int FD2_warning_state READ FD2_warning_state WRITE setFD2_warning_state NOTIFY FD2_warning_stateChanged FINAL)
    Q_PROPERTY(int BD1_warning_state READ BD1_warning_state WRITE setBD1_warning_state NOTIFY BD1_warning_stateChanged FINAL)
    Q_PROPERTY(int BD2_warning_state READ BD2_warning_state WRITE setBD2_warning_state NOTIFY BD2_warning_stateChanged FINAL)
    Q_PROPERTY(int Entry1_warning_state READ Entry1_warning_state WRITE setEntry1_warning_state NOTIFY Entry1_warning_stateChanged FINAL)
    Q_PROPERTY(int Entry2_warning_state READ Entry2_warning_state WRITE setEntry2_warning_state NOTIFY Entry2_warning_stateChanged FINAL)
    Q_PROPERTY(int Idler_warning_state READ Idler_warning_state WRITE setIdler_warning_state NOTIFY Idler_warning_stateChanged FINAL)

    Q_PROPERTY(int FU1_Z_limit_state READ FU1_Z_limit_state WRITE setFU1_Z_limit_state NOTIFY FU1_Z_limit_stateChanged FINAL)
    Q_PROPERTY(int FU2_Z_limit_state READ FU2_Z_limit_state WRITE setFU2_Z_limit_state NOTIFY FU2_Z_limit_stateChanged FINAL)
    Q_PROPERTY(int FU1_AE_Z_limit_state READ FU1_AE_Z_limit_state WRITE setFU1_AE_Z_limit_state NOTIFY FU1_AE_Z_limit_stateChanged FINAL)
    Q_PROPERTY(int FU2_AE_Z_limit_state READ FU2_AE_Z_limit_state WRITE setFU2_AE_Z_limit_state NOTIFY FU2_AE_Z_limit_stateChanged FINAL)
    Q_PROPERTY(int BU1_Z_limit_state READ BU1_Z_limit_state WRITE setBU1_Z_limit_state NOTIFY BU1_Z_limit_stateChanged FINAL)
    Q_PROPERTY(int BU2_Z_limit_state READ BU2_Z_limit_state WRITE setBU2_Z_limit_state NOTIFY BU2_Z_limit_stateChanged FINAL)
    Q_PROPERTY(int BU1_AE_Z_limit_state READ BU1_AE_Z_limit_state WRITE setBU1_AE_Z_limit_state NOTIFY BU1_AE_Z_limit_stateChanged FINAL)
    Q_PROPERTY(int BU2_AE_Z_limit_state READ BU2_AE_Z_limit_state WRITE setBU2_AE_Z_limit_state NOTIFY BU2_AE_Z_limit_stateChanged FINAL)
    Q_PROPERTY(int FD1_Z_limit_state READ FD1_Z_limit_state WRITE setFD1_Z_limit_state NOTIFY FD1_Z_limit_stateChanged FINAL)
    Q_PROPERTY(int FD2_Z_limit_state READ FD2_Z_limit_state WRITE setFD2_Z_limit_state NOTIFY FD2_Z_limit_stateChanged FINAL)
    Q_PROPERTY(int BD1_Z_limit_state READ BD1_Z_limit_state WRITE setBD1_Z_limit_state NOTIFY BD1_Z_limit_stateChanged FINAL)
    Q_PROPERTY(int BD2_Z_limit_state READ BD2_Z_limit_state WRITE setBD2_Z_limit_state NOTIFY BD2_Z_limit_stateChanged FINAL)
    Q_PROPERTY(int Entry1_Z_limit_state READ Entry1_Z_limit_state WRITE setEntry1_Z_limit_state NOTIFY Entry1_Z_limit_stateChanged FINAL)
    Q_PROPERTY(int Entry2_Z_limit_state READ Entry2_Z_limit_state WRITE setEntry2_Z_limit_state NOTIFY Entry2_Z_limit_stateChanged FINAL)
    Q_PROPERTY(int Idler_Z_limit_state READ Idler_Z_limit_state WRITE setIdler_Z_limit_state NOTIFY Idler_Z_limit_stateChanged FINAL)

    Q_PROPERTY(int FU1_F_limit_state READ FU1_F_limit_state WRITE setFU1_F_limit_state NOTIFY FU1_F_limit_stateChanged FINAL)
    Q_PROPERTY(int FU2_F_limit_state READ FU2_F_limit_state WRITE setFU2_F_limit_state NOTIFY FU2_F_limit_stateChanged FINAL)
    Q_PROPERTY(int FU1_AE_F_limit_state READ FU1_AE_F_limit_state WRITE setFU1_AE_F_limit_state NOTIFY FU1_AE_F_limit_stateChanged FINAL)
    Q_PROPERTY(int FU2_AE_F_limit_state READ FU2_AE_F_limit_state WRITE setFU2_AE_F_limit_state NOTIFY FU2_AE_F_limit_stateChanged FINAL)
    Q_PROPERTY(int BU1_F_limit_state READ BU1_F_limit_state WRITE setBU1_F_limit_state NOTIFY BU1_F_limit_stateChanged FINAL)
    Q_PROPERTY(int BU2_F_limit_state READ BU2_F_limit_state WRITE setBU2_F_limit_state NOTIFY BU2_F_limit_stateChanged FINAL)
    Q_PROPERTY(int BU1_AE_F_limit_state READ BU1_AE_F_limit_state WRITE setBU1_AE_F_limit_state NOTIFY BU1_AE_F_limit_stateChanged FINAL)
    Q_PROPERTY(int BU2_AE_F_limit_state READ BU2_AE_F_limit_state WRITE setBU2_AE_F_limit_state NOTIFY BU2_AE_F_limit_stateChanged FINAL)
    Q_PROPERTY(int FD1_F_limit_state READ FD1_F_limit_state WRITE setFD1_F_limit_state NOTIFY FD1_F_limit_stateChanged FINAL)
    Q_PROPERTY(int FD2_F_limit_state READ FD2_F_limit_state WRITE setFD2_F_limit_state NOTIFY FD2_F_limit_stateChanged FINAL)
    Q_PROPERTY(int BD1_F_limit_state READ BD1_F_limit_state WRITE setBD1_F_limit_state NOTIFY BD1_F_limit_stateChanged FINAL)
    Q_PROPERTY(int BD2_F_limit_state READ BD2_F_limit_state WRITE setBD2_F_limit_state NOTIFY BD2_F_limit_stateChanged FINAL)
    Q_PROPERTY(int Entry1_F_limit_state READ Entry1_F_limit_state WRITE setEntry1_F_limit_state NOTIFY Entry1_F_limit_stateChanged FINAL)
    Q_PROPERTY(int Entry2_F_limit_state READ Entry2_F_limit_state WRITE setEntry2_F_limit_state NOTIFY Entry2_F_limit_stateChanged FINAL)
    Q_PROPERTY(int Idler_F_limit_state READ Idler_F_limit_state WRITE setIdler_F_limit_state NOTIFY Idler_F_limit_stateChanged FINAL)

    // 急停报警
    Q_PROPERTY(bool Stop_Signal READ Stop_Signal WRITE setStop_Signal NOTIFY Stop_SignalChanged FINAL)

public:
    static ModbusTCP_Class *getInstance();

    // 浮点数拆分
    void floatResolution(QString setValue, uint16_t *high, uint16_t *low);
    // 将两个16位数据整合
    float combinationToFloat(quint16 valueH, quint16 valueL);
    // 写入32位保持寄存器
    Q_INVOKABLE void write_into_tcp_Hold32(int addr, QString value);
    // 写入16位保持寄存器
    Q_INVOKABLE void write_into_tcp_Hold16(int addr, QString newValue);
    // 写入线圈
    Q_INVOKABLE void write_into_tcp_Coil(int addr, bool value);
    // 一次写入15轴参数
    Q_INVOKABLE void write_into_tcp_Hold_15_Parameters(
                                                    const QString& process1,    // 工进1
                                                    const QString& process2,    // 工进2
                                                    const QString& fAssist1,    // 前1辅
                                                    const QString& fAssist2,    // 前2辅
                                                    const QString& bAssist1,    // 后1辅
                                                    const QString& bAssist2,    // 后2辅
                                                    const QString& fUpper1,     // 前上1
                                                    const QString& fUpper2,     // 前上2
                                                    const QString& bUpper1,     // 后上1
                                                    const QString& bUpper2,     // 后上2
                                                    const QString& fLower1,     // 前下1
                                                    const QString& fLower2,     // 前下2
                                                    const QString& bLower1,     // 后下1
                                                    const QString& bLower2,     // 后下2
                                                    const QString& roller       // 压辊
                                                                                        );

    Q_INVOKABLE void write_into_tcp_hold_F_Uknife_Ass_Share(const QString& value);
    Q_INVOKABLE void write_into_tcp_hold_B_Uknife_Ass_Share(const QString& value);
    Q_INVOKABLE void write_into_tcp_hold_FUpper_Knife_Share(const QString& value);
    Q_INVOKABLE void write_into_tcp_hold_BUpper_Knife_Share(const QString& value);
    Q_INVOKABLE void write_into_tcp_hold_FLower_Knife_Share(const QString& value);
    Q_INVOKABLE void write_into_tcp_hold_BLower_Knife_Share(const QString& value);


    // 读取当前位置 与 目标位置 映射 VD5500 - VD5616 - VD5676 (32)
    void read_CurrentLocation_AimLocation_PointMove_Torque_Hold();


    /**
     * 读取 读取目标位置 寸动距离  各个轴参数
     */
    Q_INVOKABLE void enter_Manual_Process_Window();// 进入手动界面

    Q_INVOKABLE void enter_Auto_Process_Window();// 进入自动界面

    void read_Aimlocation_PM_Hold();

    /**
     * 读取 压力轴界面  各个轴参数
     */
    Q_INVOKABLE void enter_Pressed_Axis_Window(); // 进入压力轴界面

    void read_FU_knife_1_A_E_Other_Parameters_Hold();
    void read_FU_knife_2_A_E_Other_Parameters_Hold();
    void read_BU_knife_1_A_E_Other_Parameters_Hold();
    void read_BU_knife_2_A_E_Other_Parameters_Hold();
    void read_Entry_1_Other_Parameters_Hold();
    void read_Entry_2_Other_Parameters_Hold();

    /**
     * 读取 刀盘轴界面  各个轴参数
     */
    Q_INVOKABLE void enter_knife_Axis_Window(); // 进入刀盘轴界面

    void read_FU_knife_1_Other_ParametersHold();
    void read_FU_knife_2_Other_ParametersHold();
    void read_BU_knife_1_Other_ParametersHold();
    void read_BU_knife_2_Other_ParametersHold();
    void read_FD_knife_1_Other_ParametersHold();
    void read_FD_knife_2_Other_ParametersHold();
    void read_BD_knife_1_Other_ParametersHold();
    void read_BD_knife_2_Other_ParametersHold();

    void read_Min_Max_Distance_Hold();

    /**
     *  读取 附加轴 各个轴参数
     */
    Q_INVOKABLE void enter_Extra_Axis_Window();//进入附加轴界面

    void read_Idler_Axis_Parameters_Hold();

    /**
     * 读取 设零点界面  各个轴参数 (零点值  零点补偿值)
     */
    Q_INVOKABLE void enter_SetZero_Window(); // 进入设零点界面

    void read_FU_knife_1_Zero_Hold();
    void read_FU_knife_2_Zero_Hold();
    void read_BU_knife_1_Zero_Hold();
    void read_BU_knife_2_Zero_Hold();
    void read_FD_knife_1_Zero_Hold();
    void read_FD_knife_2_Zero_Hold();
    void read_BD_knife_1_Zero_Hold();
    void read_BD_knife_2_Zero_Hold();
    void read_FU_knife_1_A_E_Zero_Hold();
    void read_FU_knife_2_A_E_Zero_Hold();
    void read_BU_knife_1_A_E_Zero_Hold();
    void read_BU_knife_2_A_E_Zero_Hold();
    void read_Entry_1_Zero_Hold();
    void read_Entry_2_Zero_Hold();
    void read_Idler_Zero_Hold();
    void read_15Axis_PM_Hold();

    // 读取 定位禁止 信号   (定时器轮询)
    void read_Location_Forbid_Signal_Hold();
    // 读取 机器报警信息 状态信息 信号
    void read_Mechine_states_Warning_signal_Hold();


    // 初始化报警信号
    void init_Warning_Signals();
    // 获取新的报警信号
    void read_New_Warning_Signals();
    // 接收信号源数据
    void read_Warning_Signals();
    // 获取详细的报警信息
    void get_Warning_Details_Info(int index);
    // 保存报警信号信息
    void save_Warning_Details_Info();
    // 遍历历史信息
    void foreach_Warning_History();

    void read_StopSignal_Coil();




    int ConnectState() const;
    void setConnectState(int newConnectState);

    QString FU_knife_1_CurrLoc() const;
    void setFU_knife_1_CurrLoc(const QString &newFU_knife_1_CurrLoc);

    QString FU_knife_2_CurrLoc() const;
    void setFU_knife_2_CurrLoc(const QString &newFU_knife_2_CurrLoc);

    QString FU_knife_1_A_E_CurrLoc() const;
    void setFU_knife_1_A_E_CurrLoc(const QString &newFU_knife_1_A_E_CurrLoc);

    QString FU_knife_2_A_E_CurrLoc() const;
    void setFU_knife_2_A_E_CurrLoc(const QString &newFU_knife_2_A_E_CurrLoc);

    QString BU_knife_1_CurrLoc() const;
    void setBU_knife_1_CurrLoc(const QString &newBU_knife_1_CurrLoc);

    QString BU_knife_2_CurrLoc() const;
    void setBU_knife_2_CurrLoc(const QString &newBU_knife_2_CurrLoc);

    QString BU_knife_1_A_E_CurrLoc() const;
    void setBU_knife_1_A_E_CurrLoc(const QString &newBU_knife_1_A_E_CurrLoc);

    QString BU_knife_2_A_E_CurrLoc() const;
    void setBU_knife_2_A_E_CurrLoc(const QString &newBU_knife_2_A_E_CurrLoc);

    QString FD_knife_1_CurrLoc() const;
    void setFD_knife_1_CurrLoc(const QString &newFD_knife_1_CurrLoc);

    QString FD_knife_2_CurrLoc() const;
    void setFD_knife_2_CurrLoc(const QString &newFD_knife_2_CurrLoc);

    QString BD_knife_1_CurrLoc() const;
    void setBD_knife_1_CurrLoc(const QString &newBD_knife_1_CurrLoc);

    QString BD_knife_2_CurrLoc() const;
    void setBD_knife_2_CurrLoc(const QString &newBD_knife_2_CurrLoc);

    QString Entry_1_CurrLoc() const;
    void setEntry_1_CurrLoc(const QString &newEntry_1_CurrLoc);

    QString Entry_2_CurrLoc() const;
    void setEntry_2_CurrLoc(const QString &newEntry_2_CurrLoc);

    QString Idler_CurrLoc() const;
    void setIdler_CurrLoc(const QString &newIdler_CurrLoc);

    QString FU_knife_1_AimLoc() const;
    void setFU_knife_1_AimLoc(const QString &newFU_knife_1_AimLoc);

    QString FU_knife_2_AimLoc() const;
    void setFU_knife_2_AimLoc(const QString &newFU_knife_2_AimLoc);

    QString FU_knife_1_A_E_AimLoc() const;
    void setFU_knife_1_A_E_AimLoc(const QString &newFU_knife_1_A_E_AimLoc);

    QString FU_knife_2_A_E_AimLoc() const;
    void setFU_knife_2_A_E_AimLoc(const QString &newFU_knife_2_A_E_AimLoc);

    QString BU_knife_1_AimLoc() const;
    void setBU_knife_1_AimLoc(const QString &newBU_knife_1_AimLoc);

    QString BU_knife_2_AimLoc() const;
    void setBU_knife_2_AimLoc(const QString &newBU_knife_2_AimLoc);

    QString BU_knife_1_A_E_AimLoc() const;
    void setBU_knife_1_A_E_AimLoc(const QString &newBU_knife_1_A_E_AimLoc);

    QString BU_knife_2_A_E_AimLoc() const;
    void setBU_knife_2_A_E_AimLoc(const QString &newBU_knife_2_A_E_AimLoc);

    QString FD_knife_1_AimLoc() const;
    void setFD_knife_1_AimLoc(const QString &newFD_knife_1_AimLoc);

    QString FD_knife_2_AimLoc() const;
    void setFD_knife_2_AimLoc(const QString &newFD_knife_2_AimLoc);

    QString BD_knife_1_AimLoc() const;
    void setBD_knife_1_AimLoc(const QString &newBD_knife_1_AimLoc);

    QString BD_knife_2_AimLoc() const;
    void setBD_knife_2_AimLoc(const QString &newBD_knife_2_AimLoc);

    QString Entry_1_AimLoc() const;
    void setEntry_1_AimLoc(const QString &newEntry_1_AimLoc);

    QString Entry_2_AimLoc() const;
    void setEntry_2_AimLoc(const QString &newEntry_2_AimLoc);

    QString Idler_AimLoc() const;
    void setIdler_AimLoc(const QString &newIdler_AimLoc);

    QString FU_knife_1_PM() const;
    void setFU_knife_1_PM(const QString &newFU_knife_1_PM);

    QString FU_knife_2_PM() const;
    void setFU_knife_2_PM(const QString &newFU_knife_2_PM);

    QString FU_knife_1_A_E_PM() const;
    void setFU_knife_1_A_E_PM(const QString &newFU_knife_1_A_E_PM);

    QString FU_knife_2_A_E_PM() const;
    void setFU_knife_2_A_E_PM(const QString &newFU_knife_2_A_E_PM);

    QString BU_knife_1_PM() const;
    void setBU_knife_1_PM(const QString &newBU_knife_1_PM);

    QString BU_knife_2_PM() const;
    void setBU_knife_2_PM(const QString &newBU_knife_2_PM);

    QString BU_knife_1_A_E_PM() const;
    void setBU_knife_1_A_E_PM(const QString &newBU_knife_1_A_E_PM);

    QString BU_knife_2_A_E_PM() const;
    void setBU_knife_2_A_E_PM(const QString &newBU_knife_2_A_E_PM);

    QString FD_knife_1_PM() const;
    void setFD_knife_1_PM(const QString &newFD_knife_1_PM);

    QString FD_knife_2_PM() const;
    void setFD_knife_2_PM(const QString &newFD_knife_2_PM);

    QString BD_knife_1_PM() const;
    void setBD_knife_1_PM(const QString &newBD_knife_1_PM);

    QString BD_knife_2_PM() const;
    void setBD_knife_2_PM(const QString &newBD_knife_2_PM);

    QString Entry_1_PM() const;
    void setEntry_1_PM(const QString &newEntry_1_PM);

    QString Entry_2_PM() const;
    void setEntry_2_PM(const QString &newEntry_2_PM);

    QString Idler_PM() const;
    void setIdler_PM(const QString &newIdler_PM);

    QString FU_knife_1_TQ() const;
    void setFU_knife_1_TQ(const QString &newFU_knife_1_TQ);

    QString FU_knife_2_TQ() const;
    void setFU_knife_2_TQ(const QString &newFU_knife_2_TQ);

    QString FU_knife_1_A_E_TQ() const;
    void setFU_knife_1_A_E_TQ(const QString &newFU_knife_1_A_E_TQ);

    QString FU_knife_2_A_E_TQ() const;
    void setFU_knife_2_A_E_TQ(const QString &newFU_knife_2_A_E_TQ);

    QString BU_knife_1_TQ() const;
    void setBU_knife_1_TQ(const QString &newBU_knife_1_TQ);

    QString BU_knife_2_TQ() const;
    void setBU_knife_2_TQ(const QString &newBU_knife_2_TQ);

    QString BU_knife_1_A_E_TQ() const;
    void setBU_knife_1_A_E_TQ(const QString &newBU_knife_1_A_E_TQ);

    QString BU_knife_2_A_E_TQ() const;
    void setBU_knife_2_A_E_TQ(const QString &newBU_knife_2_A_E_TQ);

    QString FD_knife_1_TQ() const;
    void setFD_knife_1_TQ(const QString &newFD_knife_1_TQ);

    QString FD_knife_2_TQ() const;
    void setFD_knife_2_TQ(const QString &newFD_knife_2_TQ);

    QString BD_knife_1_TQ() const;
    void setBD_knife_1_TQ(const QString &newBD_knife_1_TQ);

    QString BD_knife_2_TQ() const;
    void setBD_knife_2_TQ(const QString &newBD_knife_2_TQ);

    QString Entry_1_TQ() const;
    void setEntry_1_TQ(const QString &newEntry_1_TQ);

    QString Entry_2_TQ() const;
    void setEntry_2_TQ(const QString &newEntry_2_TQ);

    QString Idler_TQ() const;
    void setIdler_TQ(const QString &newIdler_TQ);

    QString FU_knife_1_A_E_PPR() const;
    void setFU_knife_1_A_E_PPR(const QString &newFU_knife_1_A_E_PPR);

    QString FU_knife_1_A_E_RR() const;
    void setFU_knife_1_A_E_RR(const QString &newFU_knife_1_A_E_RR);

    QString FU_knife_1_A_E_DPR() const;
    void setFU_knife_1_A_E_DPR(const QString &newFU_knife_1_A_E_DPR);

    QString FU_knife_1_A_E_ZP() const;
    void setFU_knife_1_A_E_ZP(const QString &newFU_knife_1_A_E_ZP);

    QString FU_knife_1_A_E_ZOC() const;
    void setFU_knife_1_A_E_ZOC(const QString &newFU_knife_1_A_E_ZOC);

    QString FU_knife_1_A_E_T_Acc() const;
    void setFU_knife_1_A_E_T_Acc(const QString &newFU_knife_1_A_E_T_Acc);

    QString FU_knife_1_A_E_T_Dec() const;
    void setFU_knife_1_A_E_T_Dec(const QString &newFU_knife_1_A_E_T_Dec);

    QString FU_knife_1_A_E_PL() const;
    void setFU_knife_1_A_E_PL(const QString &newFU_knife_1_A_E_PL);

    QString FU_knife_1_A_E_NL() const;
    void setFU_knife_1_A_E_NL(const QString &newFU_knife_1_A_E_NL);

    QString FU_knife_1_A_E_MLS() const;
    void setFU_knife_1_A_E_MLS(const QString &newFU_knife_1_A_E_MLS);

    QString FU_knife_1_A_E_MHS() const;
    void setFU_knife_1_A_E_MHS(const QString &newFU_knife_1_A_E_MHS);

    QString FU_knife_1_A_E_AS() const;
    void setFU_knife_1_A_E_AS(const QString &newFU_knife_1_A_E_AS);

    QString FU_knife_1_A_E_RTS() const;
    void setFU_knife_1_A_E_RTS(const QString &newFU_knife_1_A_E_RTS);

    QString FU_knife_2_A_E_PPR() const;
    void setFU_knife_2_A_E_PPR(const QString &newFU_knife_2_A_E_PPR);

    QString FU_knife_2_A_E_RR() const;
    void setFU_knife_2_A_E_RR(const QString &newFU_knife_2_A_E_RR);

    QString FU_knife_2_A_E_DPR() const;
    void setFU_knife_2_A_E_DPR(const QString &newFU_knife_2_A_E_DPR);

    QString FU_knife_2_A_E_ZP() const;
    void setFU_knife_2_A_E_ZP(const QString &newFU_knife_2_A_E_ZP);

    QString FU_knife_2_A_E_ZOC() const;
    void setFU_knife_2_A_E_ZOC(const QString &newFU_knife_2_A_E_ZOC);

    QString FU_knife_2_A_E_T_Acc() const;
    void setFU_knife_2_A_E_T_Acc(const QString &newFU_knife_2_A_E_T_Acc);

    QString FU_knife_2_A_E_T_Dec() const;
    void setFU_knife_2_A_E_T_Dec(const QString &newFU_knife_2_A_E_T_Dec);

    QString FU_knife_2_A_E_PL() const;
    void setFU_knife_2_A_E_PL(const QString &newFU_knife_2_A_E_PL);

    QString FU_knife_2_A_E_NL() const;
    void setFU_knife_2_A_E_NL(const QString &newFU_knife_2_A_E_NL);

    QString FU_knife_2_A_E_MLS() const;
    void setFU_knife_2_A_E_MLS(const QString &newFU_knife_2_A_E_MLS);

    QString FU_knife_2_A_E_MHS() const;
    void setFU_knife_2_A_E_MHS(const QString &newFU_knife_2_A_E_MHS);

    QString FU_knife_2_A_E_AS() const;
    void setFU_knife_2_A_E_AS(const QString &newFU_knife_2_A_E_AS);

    QString FU_knife_2_A_E_RTS() const;
    void setFU_knife_2_A_E_RTS(const QString &newFU_knife_2_A_E_RTS);

    QString BU_knife_1_A_E_PPR() const;
    void setBU_knife_1_A_E_PPR(const QString &newBU_knife_1_A_E_PPR);

    QString BU_knife_1_A_E_RR() const;
    void setBU_knife_1_A_E_RR(const QString &newBU_knife_1_A_E_RR);

    QString BU_knife_1_A_E_DPR() const;
    void setBU_knife_1_A_E_DPR(const QString &newBU_knife_1_A_E_DPR);

    QString BU_knife_1_A_E_ZP() const;
    void setBU_knife_1_A_E_ZP(const QString &newBU_knife_1_A_E_ZP);

    QString BU_knife_1_A_E_ZOC() const;
    void setBU_knife_1_A_E_ZOC(const QString &newBU_knife_1_A_E_ZOC);

    QString BU_knife_1_A_E_T_Acc() const;
    void setBU_knife_1_A_E_T_Acc(const QString &newBU_knife_1_A_E_T_Acc);

    QString BU_knife_1_A_E_T_Dec() const;
    void setBU_knife_1_A_E_T_Dec(const QString &newBU_knife_1_A_E_T_Dec);

    QString BU_knife_1_A_E_PL() const;
    void setBU_knife_1_A_E_PL(const QString &newBU_knife_1_A_E_PL);

    QString BU_knife_1_A_E_NL() const;
    void setBU_knife_1_A_E_NL(const QString &newBU_knife_1_A_E_NL);

    QString BU_knife_1_A_E_MLS() const;
    void setBU_knife_1_A_E_MLS(const QString &newBU_knife_1_A_E_MLS);

    QString BU_knife_1_A_E_MHS() const;
    void setBU_knife_1_A_E_MHS(const QString &newBU_knife_1_A_E_MHS);

    QString BU_knife_1_A_E_AS() const;
    void setBU_knife_1_A_E_AS(const QString &newBU_knife_1_A_E_AS);

    QString BU_knife_1_A_E_RTS() const;
    void setBU_knife_1_A_E_RTS(const QString &newBU_knife_1_A_E_RTS);

    QString BU_knife_2_A_E_PPR() const;
    void setBU_knife_2_A_E_PPR(const QString &newBU_knife_2_A_E_PPR);

    QString BU_knife_2_A_E_RR() const;
    void setBU_knife_2_A_E_RR(const QString &newBU_knife_2_A_E_RR);

    QString BU_knife_2_A_E_DPR() const;
    void setBU_knife_2_A_E_DPR(const QString &newBU_knife_2_A_E_DPR);

    QString BU_knife_2_A_E_ZP() const;
    void setBU_knife_2_A_E_ZP(const QString &newBU_knife_2_A_E_ZP);

    QString BU_knife_2_A_E_ZOC() const;
    void setBU_knife_2_A_E_ZOC(const QString &newBU_knife_2_A_E_ZOC);

    QString BU_knife_2_A_E_T_Acc() const;
    void setBU_knife_2_A_E_T_Acc(const QString &newBU_knife_2_A_E_T_Acc);

    QString BU_knife_2_A_E_T_Dec() const;
    void setBU_knife_2_A_E_T_Dec(const QString &newBU_knife_2_A_E_T_Dec);

    QString BU_knife_2_A_E_PL() const;
    void setBU_knife_2_A_E_PL(const QString &newBU_knife_2_A_E_PL);

    QString BU_knife_2_A_E_NL() const;
    void setBU_knife_2_A_E_NL(const QString &newBU_knife_2_A_E_NL);

    QString BU_knife_2_A_E_MLS() const;
    void setBU_knife_2_A_E_MLS(const QString &newBU_knife_2_A_E_MLS);

    QString BU_knife_2_A_E_MHS() const;
    void setBU_knife_2_A_E_MHS(const QString &newBU_knife_2_A_E_MHS);

    QString BU_knife_2_A_E_AS() const;
    void setBU_knife_2_A_E_AS(const QString &newBU_knife_2_A_E_AS);

    QString BU_knife_2_A_E_RTS() const;
    void setBU_knife_2_A_E_RTS(const QString &newBU_knife_2_A_E_RTS);

    QString Entry_1_PPR() const;
    void setEntry_1_PPR(const QString &newEntry_1_PPR);

    QString Entry_1_RR() const;
    void setEntry_1_RR(const QString &newEntry_1_RR);

    QString Entry_1_DPR() const;
    void setEntry_1_DPR(const QString &newEntry_1_DPR);

    QString Entry_1_ZP() const;
    void setEntry_1_ZP(const QString &newEntry_1_ZP);

    QString Entry_1_ZOC() const;
    void setEntry_1_ZOC(const QString &newEntry_1_ZOC);

    QString Entry_1_T_Acc() const;
    void setEntry_1_T_Acc(const QString &newEntry_1_T_Acc);

    QString Entry_1_T_Dec() const;
    void setEntry_1_T_Dec(const QString &newEntry_1_T_Dec);

    QString Entry_1_PL() const;
    void setEntry_1_PL(const QString &newEntry_1_PL);

    QString Entry_1_NL() const;
    void setEntry_1_NL(const QString &newEntry_1_NL);

    QString Entry_1_MLS() const;
    void setEntry_1_MLS(const QString &newEntry_1_MLS);

    QString Entry_1_MHS() const;
    void setEntry_1_MHS(const QString &newEntry_1_MHS);

    QString Entry_1_AS() const;
    void setEntry_1_AS(const QString &newEntry_1_AS);

    QString Entry_1_RTS() const;
    void setEntry_1_RTS(const QString &newEntry_1_RTS);

    QString Entry_2_PPR() const;
    void setEntry_2_PPR(const QString &newEntry_2_PPR);

    QString Entry_2_RR() const;
    void setEntry_2_RR(const QString &newEntry_2_RR);

    QString Entry_2_DPR() const;
    void setEntry_2_DPR(const QString &newEntry_2_DPR);

    QString Entry_2_ZP() const;
    void setEntry_2_ZP(const QString &newEntry_2_ZP);

    QString Entry_2_ZOC() const;
    void setEntry_2_ZOC(const QString &newEntry_2_ZOC);

    QString Entry_2_T_Acc() const;
    void setEntry_2_T_Acc(const QString &newEntry_2_T_Acc);

    QString Entry_2_T_Dec() const;
    void setEntry_2_T_Dec(const QString &newEntry_2_T_Dec);

    QString Entry_2_PL() const;
    void setEntry_2_PL(const QString &newEntry_2_PL);

    QString Entry_2_NL() const;
    void setEntry_2_NL(const QString &newEntry_2_NL);

    QString Entry_2_MLS() const;
    void setEntry_2_MLS(const QString &newEntry_2_MLS);

    QString Entry_2_MHS() const;
    void setEntry_2_MHS(const QString &newEntry_2_MHS);

    QString Entry_2_AS() const;
    void setEntry_2_AS(const QString &newEntry_2_AS);

    QString Entry_2_RTS() const;
    void setEntry_2_RTS(const QString &newEntry_2_RTS);

    int currentPageNumber() const;
    void setCurrentPageNumber(int newCurrentPageNumber);

    QString FU_knife_2_PPR() const;
    void setFU_knife_2_PPR(const QString &newFU_knife_2_PPR);

    QString FU_knife_2_RR() const;
    void setFU_knife_2_RR(const QString &newFU_knife_2_RR);

    QString FU_knife_2_DPR() const;
    void setFU_knife_2_DPR(const QString &newFU_knife_2_DPR);

    QString FU_knife_2_ZP() const;
    void setFU_knife_2_ZP(const QString &newFU_knife_2_ZP);

    QString FU_knife_2_ZOC() const;
    void setFU_knife_2_ZOC(const QString &newFU_knife_2_ZOC);

    QString FU_knife_2_T_Acc() const;
    void setFU_knife_2_T_Acc(const QString &newFU_knife_2_T_Acc);

    QString FU_knife_2_T_Dec() const;
    void setFU_knife_2_T_Dec(const QString &newFU_knife_2_T_Dec);

    QString FU_knife_2_PL() const;
    void setFU_knife_2_PL(const QString &newFU_knife_2_PL);

    QString FU_knife_2_NL() const;
    void setFU_knife_2_NL(const QString &newFU_knife_2_NL);

    QString FU_knife_2_MLS() const;
    void setFU_knife_2_MLS(const QString &newFU_knife_2_MLS);

    QString FU_knife_2_MHS() const;
    void setFU_knife_2_MHS(const QString &newFU_knife_2_MHS);

    QString FU_knife_2_AS() const;
    void setFU_knife_2_AS(const QString &newFU_knife_2_AS);

    QString FU_knife_2_RTS() const;
    void setFU_knife_2_RTS(const QString &newFU_knife_2_RTS);

    QString FU_knife_1_PPR() const;
    void setFU_knife_1_PPR(const QString &newFU_knife_1_PPR);

    QString FU_knife_1_RR() const;
    void setFU_knife_1_RR(const QString &newFU_knife_1_RR);

    QString FU_knife_1_DPR() const;
    void setFU_knife_1_DPR(const QString &newFU_knife_1_DPR);

    QString FU_knife_1_ZP() const;
    void setFU_knife_1_ZP(const QString &newFU_knife_1_ZP);

    QString FU_knife_1_ZOC() const;
    void setFU_knife_1_ZOC(const QString &newFU_knife_1_ZOC);

    QString FU_knife_1_T_Acc() const;
    void setFU_knife_1_T_Acc(const QString &newFU_knife_1_T_Acc);

    QString FU_knife_1_T_Dec() const;
    void setFU_knife_1_T_Dec(const QString &newFU_knife_1_T_Dec);

    QString FU_knife_1_PL() const;
    void setFU_knife_1_PL(const QString &newFU_knife_1_PL);

    QString FU_knife_1_NL() const;
    void setFU_knife_1_NL(const QString &newFU_knife_1_NL);

    QString FU_knife_1_MLS() const;
    void setFU_knife_1_MLS(const QString &newFU_knife_1_MLS);

    QString FU_knife_1_MHS() const;
    void setFU_knife_1_MHS(const QString &newFU_knife_1_MHS);

    QString FU_knife_1_AS() const;
    void setFU_knife_1_AS(const QString &newFU_knife_1_AS);

    QString FU_knife_1_RTS() const;
    void setFU_knife_1_RTS(const QString &newFU_knife_1_RTS);

    QString BU_knife_1_PPR() const;
    void setBU_knife_1_PPR(const QString &newBU_knife_1_PPR);

    QString BU_knife_1_RR() const;
    void setBU_knife_1_RR(const QString &newBU_knife_1_RR);

    QString BU_knife_1_DPR() const;
    void setBU_knife_1_DPR(const QString &newBU_knife_1_DPR);

    QString BU_knife_1_ZP() const;
    void setBU_knife_1_ZP(const QString &newBU_knife_1_ZP);

    QString BU_knife_1_ZOC() const;
    void setBU_knife_1_ZOC(const QString &newBU_knife_1_ZOC);

    QString BU_knife_1_T_Acc() const;
    void setBU_knife_1_T_Acc(const QString &newBU_knife_1_T_Acc);

    QString BU_knife_1_T_Dec() const;
    void setBU_knife_1_T_Dec(const QString &newBU_knife_1_T_Dec);

    QString BU_knife_1_PL() const;
    void setBU_knife_1_PL(const QString &newBU_knife_1_PL);

    QString BU_knife_1_NL() const;
    void setBU_knife_1_NL(const QString &newBU_knife_1_NL);

    QString BU_knife_1_MLS() const;
    void setBU_knife_1_MLS(const QString &newBU_knife_1_MLS);

    QString BU_knife_1_MHS() const;
    void setBU_knife_1_MHS(const QString &newBU_knife_1_MHS);

    QString BU_knife_1_AS() const;
    void setBU_knife_1_AS(const QString &newBU_knife_1_AS);

    QString BU_knife_1_RTS() const;
    void setBU_knife_1_RTS(const QString &newBU_knife_1_RTS);

    QString BU_knife_2_PPR() const;
    void setBU_knife_2_PPR(const QString &newBU_knife_2_PPR);

    QString BU_knife_2_RR() const;
    void setBU_knife_2_RR(const QString &newBU_knife_2_RR);

    QString BU_knife_2_DPR() const;
    void setBU_knife_2_DPR(const QString &newBU_knife_2_DPR);

    QString BU_knife_2_ZP() const;
    void setBU_knife_2_ZP(const QString &newBU_knife_2_ZP);

    QString BU_knife_2_ZOC() const;
    void setBU_knife_2_ZOC(const QString &newBU_knife_2_ZOC);

    QString BU_knife_2_T_Acc() const;
    void setBU_knife_2_T_Acc(const QString &newBU_knife_2_T_Acc);

    QString BU_knife_2_T_Dec() const;
    void setBU_knife_2_T_Dec(const QString &newBU_knife_2_T_Dec);

    QString BU_knife_2_PL() const;
    void setBU_knife_2_PL(const QString &newBU_knife_2_PL);

    QString BU_knife_2_NL() const;
    void setBU_knife_2_NL(const QString &newBU_knife_2_NL);

    QString BU_knife_2_MLS() const;
    void setBU_knife_2_MLS(const QString &newBU_knife_2_MLS);

    QString BU_knife_2_MHS() const;
    void setBU_knife_2_MHS(const QString &newBU_knife_2_MHS);

    QString BU_knife_2_AS() const;
    void setBU_knife_2_AS(const QString &newBU_knife_2_AS);

    QString BU_knife_2_RTS() const;
    void setBU_knife_2_RTS(const QString &newBU_knife_2_RTS);

    QString FD_knife_1_PPR() const;
    void setFD_knife_1_PPR(const QString &newFD_knife_1_PPR);

    QString FD_knife_1_RR() const;
    void setFD_knife_1_RR(const QString &newFD_knife_1_RR);

    QString FD_knife_1_DPR() const;
    void setFD_knife_1_DPR(const QString &newFD_knife_1_DPR);

    QString FD_knife_1_ZP() const;
    void setFD_knife_1_ZP(const QString &newFD_knife_1_ZP);

    QString FD_knife_1_ZOC() const;
    void setFD_knife_1_ZOC(const QString &newFD_knife_1_ZOC);

    QString FD_knife_1_T_Acc() const;
    void setFD_knife_1_T_Acc(const QString &newFD_knife_1_T_Acc);

    QString FD_knife_1_T_Dec() const;
    void setFD_knife_1_T_Dec(const QString &newFD_knife_1_T_Dec);

    QString FD_knife_1_PL() const;
    void setFD_knife_1_PL(const QString &newFD_knife_1_PL);

    QString FD_knife_1_NL() const;
    void setFD_knife_1_NL(const QString &newFD_knife_1_NL);

    QString FD_knife_1_MLS() const;
    void setFD_knife_1_MLS(const QString &newFD_knife_1_MLS);

    QString FD_knife_1_MHS() const;
    void setFD_knife_1_MHS(const QString &newFD_knife_1_MHS);

    QString FD_knife_1_AS() const;
    void setFD_knife_1_AS(const QString &newFD_knife_1_AS);

    QString FD_knife_1_RTS() const;
    void setFD_knife_1_RTS(const QString &newFD_knife_1_RTS);

    QString FD_knife_2_PPR() const;
    void setFD_knife_2_PPR(const QString &newFD_knife_2_PPR);

    QString FD_knife_2_RR() const;
    void setFD_knife_2_RR(const QString &newFD_knife_2_RR);

    QString FD_knife_2_DPR() const;
    void setFD_knife_2_DPR(const QString &newFD_knife_2_DPR);

    QString FD_knife_2_ZP() const;
    void setFD_knife_2_ZP(const QString &newFD_knife_2_ZP);

    QString FD_knife_2_ZOC() const;
    void setFD_knife_2_ZOC(const QString &newFD_knife_2_ZOC);

    QString FD_knife_2_T_Acc() const;
    void setFD_knife_2_T_Acc(const QString &newFD_knife_2_T_Acc);

    QString FD_knife_2_T_Dec() const;
    void setFD_knife_2_T_Dec(const QString &newFD_knife_2_T_Dec);

    QString FD_knife_2_PL() const;
    void setFD_knife_2_PL(const QString &newFD_knife_2_PL);

    QString FD_knife_2_NL() const;
    void setFD_knife_2_NL(const QString &newFD_knife_2_NL);

    QString FD_knife_2_MLS() const;
    void setFD_knife_2_MLS(const QString &newFD_knife_2_MLS);

    QString FD_knife_2_MHS() const;
    void setFD_knife_2_MHS(const QString &newFD_knife_2_MHS);

    QString FD_knife_2_AS() const;
    void setFD_knife_2_AS(const QString &newFD_knife_2_AS);

    QString FD_knife_2_RTS() const;
    void setFD_knife_2_RTS(const QString &newFD_knife_2_RTS);

    QString BD_knife_1_PPR() const;
    void setBD_knife_1_PPR(const QString &newBD_knife_1_PPR);

    QString BD_knife_1_RR() const;
    void setBD_knife_1_RR(const QString &newBD_knife_1_RR);

    QString BD_knife_1_DPR() const;
    void setBD_knife_1_DPR(const QString &newBD_knife_1_DPR);

    QString BD_knife_1_ZP() const;
    void setBD_knife_1_ZP(const QString &newBD_knife_1_ZP);

    QString BD_knife_1_ZOC() const;
    void setBD_knife_1_ZOC(const QString &newBD_knife_1_ZOC);

    QString BD_knife_1_T_Acc() const;
    void setBD_knife_1_T_Acc(const QString &newBD_knife_1_T_Acc);

    QString BD_knife_1_T_Dec() const;
    void setBD_knife_1_T_Dec(const QString &newBD_knife_1_T_Dec);

    QString BD_knife_1_PL() const;
    void setBD_knife_1_PL(const QString &newBD_knife_1_PL);

    QString BD_knife_1_NL() const;
    void setBD_knife_1_NL(const QString &newBD_knife_1_NL);

    QString BD_knife_1_MLS() const;
    void setBD_knife_1_MLS(const QString &newBD_knife_1_MLS);

    QString BD_knife_1_MHS() const;
    void setBD_knife_1_MHS(const QString &newBD_knife_1_MHS);

    QString BD_knife_1_AS() const;
    void setBD_knife_1_AS(const QString &newBD_knife_1_AS);

    QString BD_knife_1_RTS() const;
    void setBD_knife_1_RTS(const QString &newBD_knife_1_RTS);

    QString BD_knife_2_PPR() const;
    void setBD_knife_2_PPR(const QString &newBD_knife_2_PPR);

    QString BD_knife_2_RR() const;
    void setBD_knife_2_RR(const QString &newBD_knife_2_RR);

    QString BD_knife_2_DPR() const;
    void setBD_knife_2_DPR(const QString &newBD_knife_2_DPR);

    QString BD_knife_2_ZP() const;
    void setBD_knife_2_ZP(const QString &newBD_knife_2_ZP);

    QString BD_knife_2_ZOC() const;
    void setBD_knife_2_ZOC(const QString &newBD_knife_2_ZOC);

    QString BD_knife_2_T_Acc() const;
    void setBD_knife_2_T_Acc(const QString &newBD_knife_2_T_Acc);

    QString BD_knife_2_T_Dec() const;
    void setBD_knife_2_T_Dec(const QString &newBD_knife_2_T_Dec);

    QString BD_knife_2_PL() const;
    void setBD_knife_2_PL(const QString &newBD_knife_2_PL);

    QString BD_knife_2_NL() const;
    void setBD_knife_2_NL(const QString &newBD_knife_2_NL);

    QString BD_knife_2_MLS() const;
    void setBD_knife_2_MLS(const QString &newBD_knife_2_MLS);

    QString BD_knife_2_MHS() const;
    void setBD_knife_2_MHS(const QString &newBD_knife_2_MHS);

    QString BD_knife_2_AS() const;
    void setBD_knife_2_AS(const QString &newBD_knife_2_AS);

    QString BD_knife_2_RTS() const;
    void setBD_knife_2_RTS(const QString &newBD_knife_2_RTS);

    QString Idler_PPR() const;
    void setIdler_PPR(const QString &newIdler_PPR);

    QString Idler_RR() const;
    void setIdler_RR(const QString &newIdler_RR);

    QString Idler_DPR() const;
    void setIdler_DPR(const QString &newIdler_DPR);

    QString Idler_ZP() const;
    void setIdler_ZP(const QString &newIdler_ZP);

    QString Idler_ZOC() const;
    void setIdler_ZOC(const QString &newIdler_ZOC);

    QString Idler_T_Acc() const;
    void setIdler_T_Acc(const QString &newIdler_T_Acc);

    QString Idler_T_Dec() const;
    void setIdler_T_Dec(const QString &newIdler_T_Dec);

    QString Idler_PL() const;
    void setIdler_PL(const QString &newIdler_PL);

    QString Idler_NL() const;
    void setIdler_NL(const QString &newIdler_NL);

    QString Idler_MLS() const;
    void setIdler_MLS(const QString &newIdler_MLS);

    QString Idler_MHS() const;
    void setIdler_MHS(const QString &newIdler_MHS);

    QString Idler_AS() const;
    void setIdler_AS(const QString &newIdler_AS);

    QString Idler_RTS() const;
    void setIdler_RTS(const QString &newIdler_RTS);

    QString knife_Max_Distance() const;
    void setknife_Max_Distance(const QString &newknife_Max_Distance);

    QString knife_Min_Distance() const;
    void setknife_Min_Distance(const QString &newknife_Min_Distance);

    int F_1_Location_Forbid() const;
    void setF_1_Location_Forbid(int newF_1_Location_Forbid);

    int F_2_Location_Forbid() const;
    void setF_2_Location_Forbid(int newF_2_Location_Forbid);

    int B_1_Location_Forbid() const;
    void setB_1_Location_Forbid(int newB_1_Location_Forbid);

    int B_2_Location_Forbid() const;
    void setB_2_Location_Forbid(int newB_2_Location_Forbid);

    int FU1_location_state() const;
    void setFU1_location_state(int newFU1_location_state);

    int FU2_location_state() const;
    void setFU2_location_state(int newFU2_location_state);

    int FU1_AE_location_state() const;
    void setFU1_AE_location_state(int newFU1_AE_location_state);

    int FU2_AE_location_state() const;
    void setFU2_AE_location_state(int newFU2_AE_location_state);

    int BU1_location_state() const;
    void setBU1_location_state(int newBU1_location_state);

    int BU2_location_state() const;
    void setBU2_location_state(int newBU2_location_state);

    int BU1_AE_location_state() const;
    void setBU1_AE_location_state(int newBU1_AE_location_state);

    int BU2_AE_location_state() const;
    void setBU2_AE_location_state(int newBU2_AE_location_state);

    int FD1_location_state() const;
    void setFD1_location_state(int newFD1_location_state);

    int FD2_location_state() const;
    void setFD2_location_state(int newFD2_location_state);

    int BD1_location_state() const;
    void setBD1_location_state(int newBD1_location_state);

    int BD2_location_state() const;
    void setBD2_location_state(int newBD2_location_state);

    int Entry1_location_state() const;
    void setEntry1_location_state(int newEntry1_location_state);

    int Entry2_location_state() const;
    void setEntry2_location_state(int newEntry2_location_state);

    int Idler_location_state() const;
    void setIdler_location_state(int newIdler_location_state);

    int FU1_warning_state() const;
    void setFU1_warning_state(int newFU1_warning_state);

    int FU2_warning_state() const;
    void setFU2_warning_state(int newFU2_warning_state);

    int FU1_AE_warning_state() const;
    void setFU1_AE_warning_state(int newFU1_AE_warning_state);

    int FU2_AE_warning_state() const;
    void setFU2_AE_warning_state(int newFU2_AE_warning_state);

    int BU1_warning_state() const;
    void setBU1_warning_state(int newBU1_warning_state);

    int BU2_warning_state() const;
    void setBU2_warning_state(int newBU2_warning_state);

    int BU1_AE_warning_state() const;
    void setBU1_AE_warning_state(int newBU1_AE_warning_state);

    int BU2_AE_warning_state() const;
    void setBU2_AE_warning_state(int newBU2_AE_warning_state);

    int FD1_warning_state() const;
    void setFD1_warning_state(int newFD1_warning_state);

    int FD2_warning_state() const;
    void setFD2_warning_state(int newFD2_warning_state);

    int BD1_warning_state() const;
    void setBD1_warning_state(int newBD1_warning_state);

    int BD2_warning_state() const;
    void setBD2_warning_state(int newBD2_warning_state);

    int Entry1_warning_state() const;
    void setEntry1_warning_state(int newEntry1_warning_state);

    int Entry2_warning_state() const;
    void setEntry2_warning_state(int newEntry2_warning_state);

    int Idler_warning_state() const;
    void setIdler_warning_state(int newIdler_warning_state);

    int FU1_Z_limit_state() const;
    void setFU1_Z_limit_state(int newFU1_Z_limit_state);

    int FU2_Z_limit_state() const;
    void setFU2_Z_limit_state(int newFU2_Z_limit_state);

    int FU1_AE_Z_limit_state() const;
    void setFU1_AE_Z_limit_state(int newFU1_AE_Z_limit_state);

    int FU2_AE_Z_limit_state() const;
    void setFU2_AE_Z_limit_state(int newFU2_AE_Z_limit_state);

    int BU1_Z_limit_state() const;
    void setBU1_Z_limit_state(int newBU1_Z_limit_state);

    int BU2_Z_limit_state() const;
    void setBU2_Z_limit_state(int newBU2_Z_limit_state);

    int BU1_AE_Z_limit_state() const;
    void setBU1_AE_Z_limit_state(int newBU1_AE_Z_limit_state);

    int BU2_AE_Z_limit_state() const;
    void setBU2_AE_Z_limit_state(int newBU2_AE_Z_limit_state);

    int FD1_Z_limit_state() const;
    void setFD1_Z_limit_state(int newFD1_Z_limit_state);

    int FD2_Z_limit_state() const;
    void setFD2_Z_limit_state(int newFD2_Z_limit_state);

    int BD1_Z_limit_state() const;
    void setBD1_Z_limit_state(int newBD1_Z_limit_state);

    int BD2_Z_limit_state() const;
    void setBD2_Z_limit_state(int newBD2_Z_limit_state);

    int Entry1_Z_limit_state() const;
    void setEntry1_Z_limit_state(int newEntry1_Z_limit_state);

    int Entry2_Z_limit_state() const;
    void setEntry2_Z_limit_state(int newEntry2_Z_limit_state);

    int Idler_Z_limit_state() const;
    void setIdler_Z_limit_state(int newIdler_Z_limit_state);

    int FU1_F_limit_state() const;
    void setFU1_F_limit_state(int newFU1_F_limit_state);

    int FU2_F_limit_state() const;
    void setFU2_F_limit_state(int newFU2_F_limit_state);

    int FU1_AE_F_limit_state() const;
    void setFU1_AE_F_limit_state(int newFU1_AE_F_limit_state);

    int FU2_AE_F_limit_state() const;
    void setFU2_AE_F_limit_state(int newFU2_AE_F_limit_state);

    int BU1_F_limit_state() const;
    void setBU1_F_limit_state(int newBU1_F_limit_state);

    int BU2_F_limit_state() const;
    void setBU2_F_limit_state(int newBU2_F_limit_state);

    int BU1_AE_F_limit_state() const;
    void setBU1_AE_F_limit_state(int newBU1_AE_F_limit_state);

    int BU2_AE_F_limit_state() const;
    void setBU2_AE_F_limit_state(int newBU2_AE_F_limit_state);

    int FD1_F_limit_state() const;
    void setFD1_F_limit_state(int newFD1_F_limit_state);

    int FD2_F_limit_state() const;
    void setFD2_F_limit_state(int newFD2_F_limit_state);

    int BD1_F_limit_state() const;
    void setBD1_F_limit_state(int newBD1_F_limit_state);

    int BD2_F_limit_state() const;
    void setBD2_F_limit_state(int newBD2_F_limit_state);

    int Entry1_F_limit_state() const;
    void setEntry1_F_limit_state(int newEntry1_F_limit_state);

    int Entry2_F_limit_state() const;
    void setEntry2_F_limit_state(int newEntry2_F_limit_state);

    int Idler_F_limit_state() const;
    void setIdler_F_limit_state(int newIdler_F_limit_state);

    bool Stop_Signal() const;
    void setStop_Signal(bool newStop_Signal);

public slots:

    void read_PLC_All_Parameters_Slots();

    void write_Successed_Read_Hold(int addr);

    void scanner_write_Aim_Location(QByteArray& recvData);

private:
    ModbusTCP_Class(QObject *parent = nullptr);
    ~ModbusTCP_Class();
    ModbusTCP_Class(const ModbusTCP_Class &) = delete;
    ModbusTCP_Class &operator=(const ModbusTCP_Class) = delete;

    static ModbusTCP_Class *m_instance;
    static QMutex m_mutex;

    // ModbusTCP 通讯对象
    QModbusTcpClient *m_PLC = nullptr;
    QTimer *m_Timer = nullptr;

    // 当前连接状态
    int m_ConnectState;

    QString m_FU_knife_1_CurrLoc;

    QString m_FU_knife_2_CurrLoc;

    QString m_FU_knife_1_A_E_CurrLoc;

    QString m_FU_knife_2_A_E_CurrLoc;

    QString m_BU_knife_1_CurrLoc;

    QString m_BU_knife_2_CurrLoc;

    QString m_BU_knife_1_A_E_CurrLoc;

    QString m_BU_knife_2_A_E_CurrLoc;

    QString m_FD_knife_1_CurrLoc;

    QString m_FD_knife_2_CurrLoc;

    QString m_BD_knife_1_CurrLoc;

    QString m_BD_knife_2_CurrLoc;

    QString m_Entry_1_CurrLoc;

    QString m_Entry_2_CurrLoc;

    QString m_Idler_CurrLoc;

    QString m_FU_knife_1_AimLoc;

    QString m_FU_knife_2_AimLoc;

    QString m_FU_knife_1_A_E_AimLoc;

    QString m_FU_knife_2_A_E_AimLoc;

    QString m_BU_knife_1_AimLoc;

    QString m_BU_knife_2_AimLoc;

    QString m_BU_knife_1_A_E_AimLoc;

    QString m_BU_knife_2_A_E_AimLoc;

    QString m_FD_knife_1_AimLoc;

    QString m_FD_knife_2_AimLoc;

    QString m_BD_knife_1_AimLoc;

    QString m_BD_knife_2_AimLoc;

    QString m_Entry_1_AimLoc;

    QString m_Entry_2_AimLoc;

    QString m_Idler_AimLoc;

    QString m_FU_knife_1_PM;

    QString m_FU_knife_2_PM;

    QString m_FU_knife_1_A_E_PM;

    QString m_FU_knife_2_A_E_PM;

    QString m_BU_knife_1_PM;

    QString m_BU_knife_2_PM;

    QString m_BU_knife_1_A_E_PM;

    QString m_BU_knife_2_A_E_PM;

    QString m_FD_knife_1_PM;

    QString m_FD_knife_2_PM;

    QString m_BD_knife_1_PM;

    QString m_BD_knife_2_PM;

    QString m_Entry_1_PM;

    QString m_Entry_2_PM;

    QString m_Idler_PM;

    QString m_FU_knife_1_TQ;

    QString m_FU_knife_2_TQ;

    QString m_FU_knife_1_A_E_TQ;

    QString m_FU_knife_2_A_E_TQ;

    QString m_BU_knife_1_TQ;

    QString m_BU_knife_2_TQ;

    QString m_BU_knife_1_A_E_TQ;

    QString m_BU_knife_2_A_E_TQ;

    QString m_FD_knife_1_TQ;

    QString m_FD_knife_2_TQ;

    QString m_BD_knife_1_TQ;

    QString m_BD_knife_2_TQ;

    QString m_Entry_1_TQ;

    QString m_Entry_2_TQ;

    QString m_Idler_TQ;

    QString m_FU_knife_1_A_E_PPR;

    QString m_FU_knife_1_A_E_RR;

    QString m_FU_knife_1_A_E_DPR;

    QString m_FU_knife_1_A_E_ZP;

    QString m_FU_knife_1_A_E_ZOC;

    QString m_FU_knife_1_A_E_T_Acc;

    QString m_FU_knife_1_A_E_T_Dec;

    QString m_FU_knife_1_A_E_PL;

    QString m_FU_knife_1_A_E_NL;

    QString m_FU_knife_1_A_E_MLS;

    QString m_FU_knife_1_A_E_MHS;

    QString m_FU_knife_1_A_E_AS;

    QString m_FU_knife_1_A_E_RTS;

    QString m_FU_knife_2_A_E_PPR;

    QString m_FU_knife_2_A_E_RR;

    QString m_FU_knife_2_A_E_DPR;

    QString m_FU_knife_2_A_E_ZP;

    QString m_FU_knife_2_A_E_ZOC;

    QString m_FU_knife_2_A_E_T_Acc;

    QString m_FU_knife_2_A_E_T_Dec;

    QString m_FU_knife_2_A_E_PL;

    QString m_FU_knife_2_A_E_NL;

    QString m_FU_knife_2_A_E_MLS;

    QString m_FU_knife_2_A_E_MHS;

    QString m_FU_knife_2_A_E_AS;

    QString m_FU_knife_2_A_E_RTS;

    QString m_BU_knife_1_A_E_PPR;

    QString m_BU_knife_1_A_E_RR;

    QString m_BU_knife_1_A_E_DPR;

    QString m_BU_knife_1_A_E_ZP;

    QString m_BU_knife_1_A_E_ZOC;

    QString m_BU_knife_1_A_E_T_Acc;

    QString m_BU_knife_1_A_E_T_Dec;

    QString m_BU_knife_1_A_E_PL;

    QString m_BU_knife_1_A_E_NL;

    QString m_BU_knife_1_A_E_MLS;

    QString m_BU_knife_1_A_E_MHS;

    QString m_BU_knife_1_A_E_AS;

    QString m_BU_knife_1_A_E_RTS;

    QString m_BU_knife_2_A_E_PPR;

    QString m_BU_knife_2_A_E_RR;

    QString m_BU_knife_2_A_E_DPR;

    QString m_BU_knife_2_A_E_ZP;

    QString m_BU_knife_2_A_E_ZOC;

    QString m_BU_knife_2_A_E_T_Acc;

    QString m_BU_knife_2_A_E_T_Dec;

    QString m_BU_knife_2_A_E_PL;

    QString m_BU_knife_2_A_E_NL;

    QString m_BU_knife_2_A_E_MLS;

    QString m_BU_knife_2_A_E_MHS;

    QString m_BU_knife_2_A_E_AS;

    QString m_BU_knife_2_A_E_RTS;

    QString m_Entry_1_PPR;

    QString m_Entry_1_RR;

    QString m_Entry_1_DPR;

    QString m_Entry_1_ZP;

    QString m_Entry_1_ZOC;

    QString m_Entry_1_T_Acc;

    QString m_Entry_1_T_Dec;

    QString m_Entry_1_PL;

    QString m_Entry_1_NL;

    QString m_Entry_1_MLS;

    QString m_Entry_1_MHS;

    QString m_Entry_1_AS;

    QString m_Entry_1_RTS;

    QString m_Entry_2_PPR;

    QString m_Entry_2_RR;

    QString m_Entry_2_DPR;

    QString m_Entry_2_ZP;

    QString m_Entry_2_ZOC;

    QString m_Entry_2_T_Acc;

    QString m_Entry_2_T_Dec;

    QString m_Entry_2_PL;

    QString m_Entry_2_NL;

    QString m_Entry_2_MLS;

    QString m_Entry_2_MHS;

    QString m_Entry_2_AS;

    QString m_Entry_2_RTS;

    int m_currentPageNumber;

    QString m_FU_knife_2_PPR;

    QString m_FU_knife_2_RR;

    QString m_FU_knife_2_DPR;

    QString m_FU_knife_2_ZP;

    QString m_FU_knife_2_ZOC;

    QString m_FU_knife_2_T_Acc;

    QString m_FU_knife_2_T_Dec;

    QString m_FU_knife_2_PL;

    QString m_FU_knife_2_NL;

    QString m_FU_knife_2_MLS;

    QString m_FU_knife_2_MHS;

    QString m_FU_knife_2_AS;

    QString m_FU_knife_2_RTS;

    QString m_FU_knife_1_PPR;

    QString m_FU_knife_1_RR;

    QString m_FU_knife_1_DPR;

    QString m_FU_knife_1_ZP;

    QString m_FU_knife_1_ZOC;

    QString m_FU_knife_1_T_Acc;

    QString m_FU_knife_1_T_Dec;

    QString m_FU_knife_1_PL;

    QString m_FU_knife_1_NL;

    QString m_FU_knife_1_MLS;

    QString m_FU_knife_1_MHS;

    QString m_FU_knife_1_AS;

    QString m_FU_knife_1_RTS;

    QString m_BU_knife_1_PPR;

    QString m_BU_knife_1_RR;

    QString m_BU_knife_1_DPR;

    QString m_BU_knife_1_ZP;

    QString m_BU_knife_1_ZOC;

    QString m_BU_knife_1_T_Acc;

    QString m_BU_knife_1_T_Dec;

    QString m_BU_knife_1_PL;

    QString m_BU_knife_1_NL;

    QString m_BU_knife_1_MLS;

    QString m_BU_knife_1_MHS;

    QString m_BU_knife_1_AS;

    QString m_BU_knife_1_RTS;

    QString m_BU_knife_2_PPR;

    QString m_BU_knife_2_RR;

    QString m_BU_knife_2_DPR;

    QString m_BU_knife_2_ZP;

    QString m_BU_knife_2_ZOC;

    QString m_BU_knife_2_T_Acc;

    QString m_BU_knife_2_T_Dec;

    QString m_BU_knife_2_PL;

    QString m_BU_knife_2_NL;

    QString m_BU_knife_2_MLS;

    QString m_BU_knife_2_MHS;

    QString m_BU_knife_2_AS;

    QString m_BU_knife_2_RTS;

    QString m_FD_knife_1_PPR;

    QString m_FD_knife_1_RR;

    QString m_FD_knife_1_DPR;

    QString m_FD_knife_1_ZP;

    QString m_FD_knife_1_ZOC;

    QString m_FD_knife_1_T_Acc;

    QString m_FD_knife_1_T_Dec;

    QString m_FD_knife_1_PL;

    QString m_FD_knife_1_NL;

    QString m_FD_knife_1_MLS;

    QString m_FD_knife_1_MHS;

    QString m_FD_knife_1_AS;

    QString m_FD_knife_1_RTS;

    QString m_FD_knife_2_PPR;

    QString m_FD_knife_2_RR;

    QString m_FD_knife_2_DPR;

    QString m_FD_knife_2_ZP;

    QString m_FD_knife_2_ZOC;

    QString m_FD_knife_2_T_Acc;

    QString m_FD_knife_2_T_Dec;

    QString m_FD_knife_2_PL;

    QString m_FD_knife_2_NL;

    QString m_FD_knife_2_MLS;

    QString m_FD_knife_2_MHS;

    QString m_FD_knife_2_AS;

    QString m_FD_knife_2_RTS;

    QString m_BD_knife_1_PPR;

    QString m_BD_knife_1_RR;

    QString m_BD_knife_1_DPR;

    QString m_BD_knife_1_ZP;

    QString m_BD_knife_1_ZOC;

    QString m_BD_knife_1_T_Acc;

    QString m_BD_knife_1_T_Dec;

    QString m_BD_knife_1_PL;

    QString m_BD_knife_1_NL;

    QString m_BD_knife_1_MLS;

    QString m_BD_knife_1_MHS;

    QString m_BD_knife_1_AS;

    QString m_BD_knife_1_RTS;

    QString m_BD_knife_2_PPR;

    QString m_BD_knife_2_RR;

    QString m_BD_knife_2_DPR;

    QString m_BD_knife_2_ZP;

    QString m_BD_knife_2_ZOC;

    QString m_BD_knife_2_T_Acc;

    QString m_BD_knife_2_T_Dec;

    QString m_BD_knife_2_PL;

    QString m_BD_knife_2_NL;

    QString m_BD_knife_2_MLS;

    QString m_BD_knife_2_MHS;

    QString m_BD_knife_2_AS;

    QString m_BD_knife_2_RTS;

    QString m_Idler_PPR;

    QString m_Idler_RR;

    QString m_Idler_DPR;

    QString m_Idler_ZP;

    QString m_Idler_ZOC;

    QString m_Idler_T_Acc;

    QString m_Idler_T_Dec;

    QString m_Idler_PL;

    QString m_Idler_NL;

    QString m_Idler_MLS;

    QString m_Idler_MHS;

    QString m_Idler_AS;

    QString m_Idler_RTS;

    QString m_knife_Max_Distance;

    QString m_knife_Min_Distance;

    int m_F_1_Location_Forbid;

    int m_F_2_Location_Forbid;

    int m_B_1_Location_Forbid;

    int m_B_2_Location_Forbid;

    int m_FU1_location_state;

    int m_FU2_location_state;

    int m_FU1_AE_location_state;

    int m_FU2_AE_location_state;

    int m_BU1_location_state;

    int m_BU2_location_state;

    int m_BU1_AE_location_state;

    int m_BU2_AE_location_state;

    int m_FD1_location_state;

    int m_FD2_location_state;

    int m_BD1_location_state;

    int m_BD2_location_state;

    int m_Entry1_location_state;

    int m_Entry2_location_state;

    int m_Idler_location_state;

    int m_FU1_warning_state;

    int m_FU2_warning_state;

    int m_FU1_AE_warning_state;

    int m_FU2_AE_warning_state;

    int m_BU1_warning_state;

    int m_BU2_warning_state;

    int m_BU1_AE_warning_state;

    int m_BU2_AE_warning_state;

    int m_FD1_warning_state;

    int m_FD2_warning_state;

    int m_BD1_warning_state;

    int m_BD2_warning_state;

    int m_Entry1_warning_state;

    int m_Entry2_warning_state;

    int m_Idler_warning_state;

    int m_FU1_Z_limit_state;

    int m_FU2_Z_limit_state;

    int m_FU1_AE_Z_limit_state;

    int m_FU2_AE_Z_limit_state;

    int m_BU1_Z_limit_state;

    int m_BU2_Z_limit_state;

    int m_BU1_AE_Z_limit_state;

    int m_BU2_AE_Z_limit_state;

    int m_FD1_Z_limit_state;

    int m_FD2_Z_limit_state;

    int m_BD1_Z_limit_state;

    int m_BD2_Z_limit_state;

    int m_Entry1_Z_limit_state;

    int m_Entry2_Z_limit_state;

    int m_Idler_Z_limit_state;

    int m_FU1_F_limit_state;

    int m_FU2_F_limit_state;

    int m_FU1_AE_F_limit_state;

    int m_FU2_AE_F_limit_state;

    int m_BU1_F_limit_state;

    int m_BU2_F_limit_state;

    int m_BU1_AE_F_limit_state;

    int m_BU2_AE_F_limit_state;

    int m_FD1_F_limit_state;

    int m_FD2_F_limit_state;

    int m_BD1_F_limit_state;

    int m_BD2_F_limit_state;

    int m_Entry1_F_limit_state;

    int m_Entry2_F_limit_state;

    int m_Idler_F_limit_state;

    // 报警历史记录
    QVector<WarningInfo> m_Warning_History;
    // 记录原有报警数据
    QVector<bool> m_WarnVector;
    // 记录新接收的报警数据
    QVector<bool> m_NewWarnVector;
    // 报警信息
    QString m_WarnInfo;
    // 接收报警信息描述
    QHash<int,QString> m_WarnDetail;


    bool m_Stop_Signal;

signals:

    void write_PLC_Successed(int addr);

    void warningHistoryUpdated(const QVector<WarningInfo>& historyList);

    void warningUpdated(const WarningInfo& info);

    void warning_Signal_Changed(const QString& info);

    void ConnectStateChanged();
    void FU_knife_1_CurrLocChanged();
    void FU_knife_2_CurrLocChanged();
    void FU_knife_1_A_E_CurrLocChanged();
    void FU_knife_2_A_E_CurrLocChanged();
    void BU_knife_1_CurrLocChanged();
    void BU_knife_2_CurrLocChanged();
    void BU_knife_1_A_E_CurrLocChanged();
    void BU_knife_2_A_E_CurrLocChanged();
    void FD_knife_1_CurrLocChanged();
    void FD_knife_2_CurrLocChanged();
    void BD_knife_1_CurrLocChanged();
    void BD_knife_2_CurrLocChanged();
    void Entry_1_CurrLocChanged();
    void Entry_2_CurrLocChanged();
    void Idler_CurrLocChanged();
    void FU_knife_1_AimLocChanged();
    void FU_knife_2_AimLocChanged();
    void FU_knife_1_A_E_AimLocChanged();
    void FU_knife_2_A_E_AimLocChanged();
    void BU_knife_1_AimLocChanged();
    void BU_knife_2_AimLocChanged();
    void BU_knife_1_A_E_AimLocChanged();
    void BU_knife_2_A_E_AimLocChanged();
    void FD_knife_1_AimLocChanged();
    void FD_knife_2_AimLocChanged();
    void BD_knife_1_AimLocChanged();
    void BD_knife_2_AimLocChanged();
    void Entry_1_AimLocChanged();
    void Entry_2_AimLocChanged();
    void Idler_AimLocChanged();
    void FU_knife_1_PMChanged();
    void FU_knife_2_PMChanged();
    void FU_knife_1_A_E_PMChanged();
    void FU_knife_2_A_E_PMChanged();
    void BU_knife_1_PMChanged();
    void BU_knife_2_PMChanged();
    void BU_knife_1_A_E_PMChanged();
    void BU_knife_2_A_E_PMChanged();
    void FD_knife_1_PMChanged();
    void FD_knife_2_PMChanged();
    void BD_knife_1_PMChanged();
    void BD_knife_2_PMChanged();
    void Entry_1_PMChanged();
    void Entry_2_PMChanged();
    void Idler_PMChanged();

    void FU_knife_1_TQChanged();
    void FU_knife_2_TQChanged();
    void FU_knife_1_A_E_TQChanged();
    void FU_knife_2_A_E_TQChanged();
    void BU_knife_1_TQChanged();
    void BU_knife_2_TQChanged();
    void BU_knife_1_A_E_TQChanged();
    void BU_knife_2_A_E_TQChanged();
    void FD_knife_1_TQChanged();
    void FD_knife_2_TQChanged();
    void BD_knife_1_TQChanged();
    void BD_knife_2_TQChanged();
    void Entry_1_TQChanged();
    void Entry_2_TQChanged();
    void Idler_TQChanged();
    void FU_knife_1_A_E_PPRChanged();
    void FU_knife_1_A_E_RRChanged();
    void FU_knife_1_A_E_DPRChanged();
    void FU_knife_1_A_E_ZPChanged();
    void FU_knife_1_A_E_ZOCChanged();
    void FU_knife_1_A_E_T_AccChanged();
    void FU_knife_1_A_E_T_DecChanged();
    void FU_knife_1_A_E_PLChanged();
    void FU_knife_1_A_E_NLChanged();
    void FU_knife_1_A_E_MLSChanged();
    void FU_knife_1_A_E_MHSChanged();
    void FU_knife_1_A_E_ASChanged();
    void FU_knife_1_A_E_RTSChanged();
    void FU_knife_2_A_E_PPRChanged();
    void FU_knife_2_A_E_RRChanged();
    void FU_knife_2_A_E_DPRChanged();
    void FU_knife_2_A_E_ZPChanged();
    void FU_knife_2_A_E_ZOCChanged();
    void FU_knife_2_A_E_T_AccChanged();
    void FU_knife_2_A_E_T_DecChanged();
    void FU_knife_2_A_E_PLChanged();
    void FU_knife_2_A_E_NLChanged();
    void FU_knife_2_A_E_MLSChanged();
    void FU_knife_2_A_E_MHSChanged();
    void FU_knife_2_A_E_ASChanged();
    void FU_knife_2_A_E_RTSChanged();
    void BU_knife_1_A_E_PPRChanged();
    void BU_knife_1_A_E_RRChanged();
    void BU_knife_1_A_E_DPRChanged();
    void BU_knife_1_A_E_ZPChanged();
    void BU_knife_1_A_E_ZOCChanged();
    void BU_knife_1_A_E_T_AccChanged();
    void BU_knife_1_A_E_T_DecChanged();
    void BU_knife_1_A_E_PLChanged();
    void BU_knife_1_A_E_NLChanged();
    void BU_knife_1_A_E_MLSChanged();
    void BU_knife_1_A_E_MHSChanged();
    void BU_knife_1_A_E_ASChanged();
    void BU_knife_1_A_E_RTSChanged();
    void BU_knife_2_A_E_PPRChanged();
    void BU_knife_2_A_E_RRChanged();
    void BU_knife_2_A_E_DPRChanged();
    void BU_knife_2_A_E_ZPChanged();
    void BU_knife_2_A_E_ZOCChanged();
    void BU_knife_2_A_E_T_AccChanged();
    void BU_knife_2_A_E_T_DecChanged();
    void BU_knife_2_A_E_PLChanged();
    void BU_knife_2_A_E_NLChanged();
    void BU_knife_2_A_E_MLSChanged();
    void BU_knife_2_A_E_MHSChanged();
    void BU_knife_2_A_E_ASChanged();
    void BU_knife_2_A_E_RTSChanged();
    void Entry_1_PPRChanged();
    void Entry_1_RRChanged();
    void Entry_1_DPRChanged();
    void Entry_1_ZPChanged();
    void Entry_1_ZOCChanged();
    void Entry_1_T_AccChanged();
    void Entry_1_T_DecChanged();
    void Entry_1_PLChanged();
    void Entry_1_NLChanged();
    void Entry_1_MLSChanged();
    void Entry_1_MHSChanged();
    void Entry_1_ASChanged();
    void Entry_1_RTSChanged();
    void Entry_2_PPRChanged();
    void Entry_2_RRChanged();
    void Entry_2_DPRChanged();
    void Entry_2_ZPChanged();
    void Entry_2_ZOCChanged();
    void Entry_2_T_AccChanged();
    void Entry_2_T_DecChanged();
    void Entry_2_PLChanged();
    void Entry_2_NLChanged();
    void Entry_2_MLSChanged();
    void Entry_2_MHSChanged();
    void Entry_2_ASChanged();
    void Entry_2_RTSChanged();
    void currentPageNumberChanged();
    void FU_knife_2_PPRChanged();
    void FU_knife_2_RRChanged();
    void FU_knife_2_DPRChanged();
    void FU_knife_2_ZPChanged();
    void FU_knife_2_ZOCChanged();
    void FU_knife_2_T_AccChanged();
    void FU_knife_2_T_DecChanged();
    void FU_knife_2_PLChanged();
    void FU_knife_2_NLChanged();
    void FU_knife_2_MLSChanged();
    void FU_knife_2_MHSChanged();
    void FU_knife_2_ASChanged();
    void FU_knife_2_RTSChanged();
    void FU_knife_1_PPRChanged();
    void FU_knife_1_RRChanged();
    void FU_knife_1_DPRChanged();
    void FU_knife_1_ZPChanged();
    void FU_knife_1_ZOCChanged();
    void FU_knife_1_T_AccChanged();
    void FU_knife_1_T_DecChanged();
    void FU_knife_1_PLChanged();
    void FU_knife_1_NLChanged();
    void FU_knife_1_MLSChanged();
    void FU_knife_1_MHSChanged();
    void FU_knife_1_ASChanged();
    void FU_knife_1_RTSChanged();
    void BU_knife_1_PPRChanged();
    void BU_knife_1_RRChanged();
    void BU_knife_1_DPRChanged();
    void BU_knife_1_ZPChanged();
    void BU_knife_1_ZOCChanged();
    void BU_knife_1_T_AccChanged();
    void BU_knife_1_T_DecChanged();
    void BU_knife_1_PLChanged();
    void BU_knife_1_NLChanged();
    void BU_knife_1_MLSChanged();
    void BU_knife_1_MHSChanged();
    void BU_knife_1_ASChanged();
    void BU_knife_1_RTSChanged();
    void BU_knife_2_PPRChanged();
    void BU_knife_2_RRChanged();
    void BU_knife_2_DPRChanged();
    void BU_knife_2_ZPChanged();
    void BU_knife_2_ZOCChanged();
    void BU_knife_2_T_AccChanged();
    void BU_knife_2_T_DecChanged();
    void BU_knife_2_PLChanged();
    void BU_knife_2_NLChanged();
    void BU_knife_2_MLSChanged();
    void BU_knife_2_MHSChanged();
    void BU_knife_2_ASChanged();
    void BU_knife_2_RTSChanged();
    void FD_knife_1_PPRChanged();
    void FD_knife_1_RRChanged();
    void FD_knife_1_DPRChanged();
    void FD_knife_1_ZPChanged();
    void FD_knife_1_ZOCChanged();
    void FD_knife_1_T_AccChanged();
    void FD_knife_1_T_DecChanged();
    void FD_knife_1_PLChanged();
    void FD_knife_1_NLChanged();
    void FD_knife_1_MLSChanged();
    void FD_knife_1_MHSChanged();
    void FD_knife_1_ASChanged();
    void FD_knife_1_RTSChanged();
    void FD_knife_2_PPRChanged();
    void FD_knife_2_RRChanged();
    void FD_knife_2_DPRChanged();
    void FD_knife_2_ZPChanged();
    void FD_knife_2_ZOCChanged();
    void FD_knife_2_T_AccChanged();
    void FD_knife_2_T_DecChanged();
    void FD_knife_2_PLChanged();
    void FD_knife_2_NLChanged();
    void FD_knife_2_MLSChanged();
    void FD_knife_2_MHSChanged();
    void FD_knife_2_ASChanged();
    void FD_knife_2_RTSChanged();
    void BD_knife_1_PPRChanged();
    void BD_knife_1_RRChanged();
    void BD_knife_1_DPRChanged();
    void BD_knife_1_ZPChanged();
    void BD_knife_1_ZOCChanged();
    void BD_knife_1_T_AccChanged();
    void BD_knife_1_T_DecChanged();
    void BD_knife_1_PLChanged();
    void BD_knife_1_NLChanged();
    void BD_knife_1_MLSChanged();
    void BD_knife_1_MHSChanged();
    void BD_knife_1_ASChanged();
    void BD_knife_1_RTSChanged();
    void BD_knife_2_PPRChanged();
    void BD_knife_2_RRChanged();
    void BD_knife_2_DPRChanged();
    void BD_knife_2_ZPChanged();
    void BD_knife_2_ZOCChanged();
    void BD_knife_2_T_AccChanged();
    void BD_knife_2_T_DecChanged();
    void BD_knife_2_PLChanged();
    void BD_knife_2_NLChanged();
    void BD_knife_2_MLSChanged();
    void BD_knife_2_MHSChanged();
    void BD_knife_2_ASChanged();
    void BD_knife_2_RTSChanged();
    void Idler_PPRChanged();
    void Idler_RRChanged();
    void Idler_DPRChanged();
    void Idler_ZPChanged();
    void Idler_ZOCChanged();
    void Idler_T_AccChanged();
    void Idler_T_DecChanged();
    void Idler_PLChanged();
    void Idler_NLChanged();
    void Idler_MLSChanged();
    void Idler_MHSChanged();
    void Idler_ASChanged();
    void Idler_RTSChanged();
    void knife_Max_DistanceChanged();
    void knife_Min_DistanceChanged();
    void F_1_Location_ForbidChanged();
    void F_2_Location_ForbidChanged();
    void B_1_Location_ForbidChanged();
    void B_2_Location_ForbidChanged();
    void FU1_location_stateChanged();
    void FU2_location_stateChanged();
    void FU1_AE_location_stateChanged();
    void FU2_AE_location_stateChanged();
    void BU1_location_stateChanged();
    void BU2_location_stateChanged();
    void BU1_AE_location_stateChanged();
    void BU2_AE_location_stateChanged();
    void FD1_location_stateChanged();
    void FD2_location_stateChanged();
    void BD1_location_stateChanged();
    void BD2_location_stateChanged();
    void Entry1_location_stateChanged();
    void Entry2_location_stateChanged();
    void Idler_location_stateChanged();
    void FU1_warning_stateChanged();
    void FU2_warning_stateChanged();
    void FU1_AE_warning_stateChanged();
    void FU2_AE_warning_stateChanged();
    void BU1_warning_stateChanged();
    void BU2_warning_stateChanged();
    void BU1_AE_warning_stateChanged();
    void BU2_AE_warning_stateChanged();
    void FD1_warning_stateChanged();
    void FD2_warning_stateChanged();
    void BD1_warning_stateChanged();
    void BD2_warning_stateChanged();
    void Entry1_warning_stateChanged();
    void Entry2_warning_stateChanged();
    void Idler_warning_stateChanged();
    void FU1_Z_limit_stateChanged();
    void FU2_Z_limit_stateChanged();
    void FU1_AE_Z_limit_stateChanged();
    void FU2_AE_Z_limit_stateChanged();
    void BU1_Z_limit_stateChanged();
    void BU2_Z_limit_stateChanged();
    void BU1_AE_Z_limit_stateChanged();
    void BU2_AE_Z_limit_stateChanged();
    void FD1_Z_limit_stateChanged();
    void FD2_Z_limit_stateChanged();
    void BD1_Z_limit_stateChanged();
    void BD2_Z_limit_stateChanged();
    void Entry1_Z_limit_stateChanged();
    void Entry2_Z_limit_stateChanged();
    void Idler_Z_limit_stateChanged();
    void FU1_F_limit_stateChanged();
    void FU2_F_limit_stateChanged();
    void FU1_AE_F_limit_stateChanged();
    void FU2_AE_F_limit_stateChanged();
    void BU1_F_limit_stateChanged();
    void BU2_F_limit_stateChanged();
    void BU1_AE_F_limit_stateChanged();
    void BU2_AE_F_limit_stateChanged();
    void FD1_F_limit_stateChanged();
    void FD2_F_limit_stateChanged();
    void BD1_F_limit_stateChanged();
    void BD2_F_limit_stateChanged();
    void Entry1_F_limit_stateChanged();
    void Entry2_F_limit_stateChanged();
    void Idler_F_limit_stateChanged();

    void Stop_SignalChanged();
};

#endif // MODBUSTCP_CLASS_H
